{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3.线性模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.用于回归的线性模型\n",
    "<P>线性模型一般公式:y=w[0]*x1+w[1]*x2+w[2]*x3+....+w[p]xp+b</P>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "w[0]: 0.393906  b: -0.031804\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcwAAAGuCAYAAAAd5zbXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXxU9b3/8fdkgTCsCqKRbKgYQkJuABPwihgV0Aq1YKuAsWqFolZb27rUXqqI12ht7a32tv15ub1WWyMRrFYBRQWJC0UDCCIWEavZWGPYEkL28/sjJhAySU4mM2eZeT0fDx8PM3Nm5jvfHM4755zv9/P1GIYhAADQuQi7GwAAgBsQmAAAmEBgAgBgAoEJAIAJBCYAACYQmAAAmEBgAhbweDwxHo+n0OPxfOTxeD7xeDyL7G4TgO7xMA8TCD6Px+OR1NcwjCqPxxMt6T1JdxiG8b7NTQNgUpTdDQDCgdH8l2nV1z9Gf/0ff60CLsIlWcAiHo8n0uPxbJG0X9KbhmF8YHebAJjX6SXZ9evXG7W1tQH7sKNHj6pv374Bez+3oz/aCpf+qKqq0n333acf/ehHGj58eOvjy5cv14oVKyRJNTU1euaZZ+xqouOEy75hFv1xXDD6Ijs72+Pr8a7uYQb0klFBQYGys7MD+ZauRn+0FU79sWjRIvXt21d33XWXz+eTk5O1Y8cOi1vlXOG0b5hBfxwXpL7wGZhckgUsUF5erkOHDkmSjh07ptWrV2vkyJE2twpAdzDoB7DAnj17dMMNN6ixsVFNTU265pprNH36dLubBaAbCEzAAunp6dq8ebPdzQDQAwQmAFikvr5eZWVlqqmp6dH7DBw4UNu3bw9Qq9ytJ30RExOjuLg4RUdHm9qewAQAi5SVlal///5KSkpScy0L/1RWVqp///4BbJl7+dsXhmGooqJCZWVlbUard4ZBPwBgkZqaGg0ePLhHYYnA8Hg8Gjx4cLfO9glMALAQYekc3f1dEJgAAL8kJSXpq6++6vE2bkFgAgBgAoEJAGGkqKhII0eO1Lx585SWlqacnBytXr1aF1xwgUaMGKHCwkIdOHBAM2bMUHp6uiZMmKCtW7dKkioqKjR16lSNGTNGN998s06sFPfss88qKytLGRkZuvnmm9XY2GjXVwwaRskCgA0WLf9E/9x9xK/XNjY2KjIyst3jo84coIXfTO3y9Z9//rmWLVumxYsXKzMzU88995zee+89vfLKK3r44YcVHx+vMWPG6O9//7veeustXX/99dqyZYsWLVqkiRMn6v7779fKlSu1ePFiSdL27dv1/PPPa926dYqOjtYPfvAD5eXl6frrr/fr+zkVgQkAYWb48OEaPXq0JCk1NVWXXnqpPB6PRo8eraKiIhUXF+tvf/ubJOmSSy5RRUWFDh8+rHfeeUcvvviiJGnatGk65ZRTJElr1qzRpk2blJmZKam5/OPQoUNt+GbBRWACgA3MnAl2pKfzMHv37t36/xEREa0/R0REqKGhQVFR7aOhZUSpr5GlhmHohhtu0COPPOJ3m9yAe5gAgDYmTZqkvLw8Sc2rgQwZMkQDBgxo8/hrr72mgwcPSpIuvfRSvfDCC9q/f78k6cCBAyouLran8UHEGSYAoI0HHnhA3/ve95Seni6v19u6NuvChQs1Z84cjR07VhdddJESEhIkSaNGjdJDDz2kqVOnqqmpSdHR0frDH/6gxMREO79GwBGYABBGkpKStG3bttafn376aZ/Pvfzyy+1eO3jwYL3xxhutP//2t79t/f9Zs2Zp1qxZ7V5TVFQUgFY7A5dkAQAwgcAEAMAEAhMAABMITAAATCAwAQAwgcAEAMAEAhMAwsShQ4f0xz/+0a/XXnHFFTp06FCn29x///1avXq1X+/fmaefflq33357p9sUFBToH//4R8A/+0QEJgA4VF5esZKSVioiYpmSklYqL69n1XM6C8yuVhd59dVXNWjQoE63efDBBzV58mS/29cTBCYAhKm8vGLNn79JxcXVMgypuLha8+dv6lFo3nvvvfrXv/6ljIwM3X333SooKNDFF1+sa6+9trUY+4wZMzRu3Dilpqa2rkYiHV8IuqioSCkpKfr+97+v1NRUTZ06VceOHZMk3XjjjXrhhRdat1+4cKHGjh2r0aNH69NPP5UklZeXa8qUKRo7dqxuvvlmJSYm+lxg+s9//rPOPfdcXXTRRVq3bl3r48uXL9f48eM1ZswYTZ48Wfv371dRUZGefPJJ/fa3v1VGRobefffddtvt27fP735rQWACgAMtWLBN1dVtz/qqqxu1YMG2Dl7RtV/+8pc6++yztWXLFv3617+WJBUWFio3N1f//Oc/JUlPPfWUNm3apI0bN+p3v/udKioq2r3Pzp07ddttt+mTTz7RoEGDWlc2OdmQIUP04Ycf6tZbb9Vjjz0mSVq0aJEuueQSffjhh5o5c6ZKSkravW7Pnj1auHCh1q1bpzfffLO1bZI0ceJEvf/++9q8ebNmz56txx9/XElJSbrlllv0k5/8RFu2bNGFF17Ybrtf/epXfvdbC0rjAYADlZRUd+txf2VlZWn48OGtP//ud7/TSy+9JEkqLS3Vzp07NXjw4DavGT58uDIyMiRJ48aN67D83VVXXdW6TcuyYO+9917r+19++eWtS4Sd6IMPPlB2drZOO+00Sc1l9z777DNJUllZmWbNmqU9e/aorq5O8fHxPj/75O1O/I7+4gwTABwoIcHbrcf91bdv39b/Lygo0OrVq7V+/Xp99NFHGjNmjGpqatq95sTlwSIjI9XQ0ODzvVu2O3EbwzBMtcvXMmKS9MMf/lC33367Pv74Y/3P//yPamtrTW3n63t0F4EJAA6Um5smrzeyzWNeb6Ryc9P8fs/+/fursrKyw+cPHz6sU045RV6vV59++qnef/99vz+rIxMnTtTSpUslSW+88UbrEmEnGj9+vAoKClRRUaH6+notW7asTRuHDRsmSa2rqEjtv1tH2/UEgQkADpSTk6jFi8cpMdErj0dKTPRq8eJxysnxf8mswYMH64ILLlBaWpruvvvuds9ffvnlamhoUHp6uu677z5NmDChJ1/Bp4ULF+qNN97Q2LFj9dprryk2NrbdYtixsbF64IEHdP7552vy5MkaO3Zs63MPPPCArr76al144YUaMmRI6+Pf/OY39dJLL7UO+ulou57wdHF6bO7c2aSCggJlZ2cH8i1djf5oi/44Ljk5WTt27LC7GY4RKvvG9u3blZKS0uP3qaysbBcyblFbW6vIyEhFRUVp/fr1uvXWW7Vlyxa/36+nfdHB78Tn9WAG/QAALFNSUqJrrrlGTU1N6tWrl/73f//X7iaZRmACACwzYsQIbd682e5m+IV7mAAAmEBgAoCFzE6rQPB193dBYAKARWJiYlRRUUFoOoBhGKqoqFBMTIzp13APEwAsEhcXp7KyMpWXl/fofWpqarp1oA9lPemLmJgYxcXFmd6ewAQAi0RHRwekRFtBQYHGjBkTgBa5n5V9wSVZAABMIDABADCBwAQAwAQCEwAAEwhMAABMIDABADCBwAQAwAQCEwAAEwhMAABMIDABADCBwAQAwAQCEwAAEwhMAABMIDABADCBwAQAwAQCEwAAEwhMAABMIDABADCBwAQAwAQCEwAAEwhMAABMIDABADCBwAQAwAQCEwAAEwhMwAKlpaW6+OKLlZKSotTUVD3xxBN2NwlAN0XZ3QAgHERFRek3v/mNxo4dq8rKSo0bN05TpkzRqFGj7G4aAJM4wwQsEBsbq7Fjx0qS+vfvr5SUFO3atcvmVgHoDgITsFhRUZE2b96s8ePH290UAN3gMQyjwyfXr19v1NbWBuzDqqqq1K9fv4C9n9vRH22FQ38cO3ZMd9xxh6677jpNmjSpzXPLly/XihUrJEkHDx7U0qVL7WiiI4XDvtEd9MdxweiL7Oxsj6/HOw1MSZ0+2V0FBQXKzs4O5Fu6Gv3RVqj3R319vaZPn67LLrtMP/3pTzvdNjk5WTt27LCoZc4X6vtGd9EfxwWpL3wGJpdkAQsYhqG5c+cqJSWly7AE4EwEJmCBdevW6a9//aveeustZWRkKCMjQ6+++qrdzQLQDUwrASwwceJEdXH7A4DDcYYJAIAJBCYAACYQmAAAmEBgAgBgAoEJAIAJBCYAACYQmAAAmEBgAgBgAoEJAIAJBCYAACYQmAAAmEBgAgBgAoEJAIAJBCYAACYQmAAAmEBgAgBgAoEJAIAJBCYAACYQmAAAmEBgAgBgAoEJAIAJBCYAACYQmAAAmEBgAgBgAoEJAIAJBCYAACYQmAAAmEBgAgBgAoEJAIAJBCYAACYQmAAAmEBgAgBgAoEJAIAJBCYAwHZ5ecVKSlqpiIhlSkpaqby8Yrub1E6U3Q0AAIS3vLxizZ+/SdXVjZKk4uJqzZ+/SZKUk5NoZ9Pa4AwTAGCrBQu2tYZli+rqRi1YsM2mFvlGYAIAbFVSUt2tx+1CYAIAbJWQ4O3W43YhMAEAtsrNTZPXG9nmMa83Urm5aTa1yDcCEwBgq5ycRC1ePE6JiV55PFJioleLF49z1IAfiVGyAIAT5OUVa8GCbSopqVZCgle5uWmWBFdOTqLjAvJkBCYAQJJ7pnfYhUuyAABJ7pneYRcCEwAgyT3TO+xCYAIAJLlneoddCEwAgCT3TO+wC4EJACGsO0XNO5ve4Ybi6MHGKFkAptk15QD+8WfUq6/pHYyebcYZJgBTWg6axcXVMozjB81wPNNwi0CNemX0bDMCE4ApHDTdJ1CjXhk924zABGAKB033CdSoV0bPNiMwAZjCQdN9AjXq1YmjZ6vrGrR0Y6n+sKVGTU2GJZ9JYAIwxYkHTXQuUEXNnVQcfduuw1rw0scan7tG97ywVaWVTdpXWWPJZzNKFoApLQdHRsm6S6CKmttZHL2ypl4vb9mt/A0l2rbriHpHRWja6FjNzkrQ0aKPFDuwjyXtIDABmOaGFSVC1YlTeoYOjdBvflMc0r8LwzD0Yckh5ReWaMXWPTpW36iU2AFadGWqZmQM00BvtCSpoNhjWZsITABwuJPnQe7b1xSy8yAPHq3Ti5t36fkNJfpsX5X69orUjDFnanZmgtLjBsrjsS4gT0ZgAoDDdTalJxQCs6nJ0PtfVii/sFSrPtmruoYm/Vv8IP3yqtGa/m9nql9vZ0SVM1oBAOhQqE7p2V9Zoxc2len5DaUqrqjWgJgozcmM1+ysBKXEDrC7ee0QmIAFbrrpJq1YsUJDhw7Vtm1M9Ef3JCR4VVzcPhydPKWnozKKjU2G3tlZrvzCEq3Zvl8NTYayhp+qH08eoW+kxSomOrLrN7cJgQlY4MYbb9Ttt9+u66+/3u6mwIVyc9Pa3MOUnD2lx1ft2e9/f5Ne27ZHXw6s1q5DxzS4by/dNHG4rjkvXucM7Wdzi80hMAELTJo0SUVFRXY3Ay518pSe5lGy9syDNMPXPddjxxqV/8cyzfmveP3HFSmaMup09YpyVykAd7UWCFMsrYScnEQVFU1TU9PVys8f7NiwlDq+t9pUaeivc8drWnqs68JSkjyG0XFJofXr1xu1tbUB+7Cqqir16+eOU28r0B9thXp/7N27Vz//+c/15z//2efzy5cv14oVKyRJBw8e1NKlSyVJq1fX6LHHKnXiP8XevaW77uqvyZNjgt5uM1avrtGf/nRU+/c3aejQCM2b1zegbQv1faO7nNgfdY2GPtzXqLfL6vVm7lE1HmmfLaefHqH8/MEB/dxg9EV2drbPuSudBqakgBboKygoUHZ2diDf0tXoj7ZCvT+Kioo0ffp0U4N+kpOTtWPHDklSUtJKnwM+EhO9KiqaFvB2dtfJ96uk5vtrgSydFur7Rnc5qT927qvUksJSvbi5TIeq6xV3Sh+dfbivlj2+S8eOdb1P9HSN1SD1hc/A5B4m4HBOn1IQ6nME0V51XYNWbt2j/A2l2lR8UNGRHk0ddYZmZ8XrgrOHKCLCo6mpXQeh2xamJjABC8yZM0cFBQX66quvFBcXp0WLFmnu3LmmXuv0KQVOD3QEzrZdh7WksESvbNmtytoGnXVaXy24IkVXjR2mwf16t9nWTBlFt/2xRWACFliyZInfr3X6lAKnBzp65khL4fPCEn2y++vC5+mxmp2ZoMykU3pUqs5tf2wRmIDDOX2VEKcHOrqvufD5QS0pLNXKEwqfP/itVH0rY5gG9okOyOe47Y8tAhNwASevEuL0QId5B4/W6W8fNpeq27k/+IXP3fbHFoEJoMecHOjoXFOTofe/qFD+hlKt2rZXdY1NyrCo8Lnb/tgiMAEgDPkqfH7t+ATNyoy3tPC5m/7YIjABIEw0Nhl657NyLSks0ZpP96uxydD44afqJ5PP1eVpZ3S78HlP51C6DYEJwJXC7WDdE7sOHdPSDaVatrFUuw/XaHDfXpo3cbhmZcbrrNP8q5LjtjmUgUBgAnAdtxys7Qz1+sYmrdm+X/kbSvT2Z+WSpInnDNEvpo/S5JSeFz532xzKQCAwAZfhzModB2u7Qr3oq6PK31CqFzaV6auqWp0xIEY/vPgcXX1evOJPDdx0DbfNoQwEAhNwEbecWQWbGw7WVoZ6TX2jXv9kr/ILS7X+iwpFRnh0cfJQzcmK10XnnqaoyMCvDOK2OZSBQGACLuKGMysruOFgbUWon1z4PP7UPrr7smR9Z1ycTh8Q3JVs3DaHMhDctyAZEMbccGZlhdzcNHm9bUd0Ou1g3VF49zTUq+sa9G5Zvb79//6hKb99R399v0gXnDNEz84dr7fvuli3XXxO0MNSar6isXjxOCUmeuXxNK+e05MVatyw5itnmICLuOHMygpumPAe6DOw9oXPozssfG6VQM2hdMutBgITcJFwvAzWEadPeA9EqHdU+Dw5qkLzZ14U8FJ1wdTZYDW33GogMAEXccOZFY7zJ9TNFD4vKChwXVh2dgbpllsNBCbgMk4/s4J/rC58bqWuziDdcquBwATQJeZ+BkdL4fMlG0r1usWFz63U1RmkW241hMZvA0DQ+Lqcdt11hbrjji164okMgtMPTil8bpWuziDdcquBwATQKV+X0ySpoqLOkSMZnSrQhc/dxMwZpBtuNRCYADrV2cALJ45kdJpgFD53G7ecQXaFwATQqY4up7Vw2khGJwh24XM3csMZZFcITACd8nU57UROG8loJ6sKn8MeBCaATrWcFdxxx2ZVVNS3ec6JIxmtZkfhc9iDwATQpZbLaUwvOe6zfZVaUliilzbvsrzwOexBYAIwLRTuQ/VEdV2DVny0R0s2lGhzySFFR3o0NfUMzclM0L+fPVgREe4tLoCuEZgA0IVtuw7rua8Ln1fVNuis0/raXvgc1iMwAcCHjgqfz8lK0HmJp7i6VB38Q2ACwNfMFD6Hf0Lh/jeBCSDs+S58PkxzsuI1epi7C587gVvWu+wKgQkgLHVU+PzRb4/W9PQz1TdECp87gVvWu+wKewSAkHbypcCf/SJZxjlqV/h8dla8Rp4ReoXPncAt6112hcAEELJ8XQq87dbNOvXyaF06/fSwKHzuBG5Z77IrlKAAELJ+du/H7S4FGg1S7y2Rev7m8zVjzDDC0gK5uWnyetv2sxurRHGGCSCkNBc+36clhaXaVXbM5zZ7dtVY3KrwxmolABAkJ993vO66SGVnd/4aX4XPTxkarYP769tt67ZLgaEgFKpEEZgAHMXXfcfHHpNSUorbHXB9FT6/ZORQzc5sLnz+fGJplwsXO0EozFEMBwQmAEfxNQWhtlZtpiDs2Fup/A1dFz53w6XAUJmjGA4ITACO0tkUhKUbStsVPr82K0Hnn9Vx4XOnXwoMlTmK4YDABOAoHU1BiBrg0T1/26qzQ6zweajMUQwHBCYAR8nNTdP352/SsRPOujxR0qXfHaoHb0kLucLnoTJHMRwwDxOAIxiGoY1FB7S51yENnBqlyAHNoTj49F766Z399Np/T1Jm0qkhFZZS6MxRDAecYQLolkCP6DxwtE4vnlT4/MbvDtec/z5e+LygoCBwX8Bh3DAwCc0ITACmBWpEZ1OTofVfVGhJYYne+GRf2Bc+d/rAJDQLr70SCBF2zdvr6YjO/UdqtGxTmZZupPA53IfABFzGznl7/ozobGwy9M5n5VpSWKI1n+5XY5Oh8cNPDcnC5xQgCG0EJuAyZs/ygnHw7s6IzrKD1Vq6sUzLNpZqz+EaDenXS/MuHK5Z58XrrNP69agdTkQBgtBHYAIuY+YsL1gH79zctE5LzdU3Nmn1P/dpyYZSvbuzXJJ04YjTdP/0Ubo05XT1igrdgfkUIAh9BCbgMmbO8oJ18O5oROe/XzZEj7y2XX/bVKavqup0xoAY/fDic3T1efGKPzU85hNSgCD0EZiAy3R1licF9+DdMqKzpfD5ksISLXhsW7vC51GRoXs26QsFCEIfgQm4jJl5e8E8eJstfB5uzPwhA3cjMAEX6mreXqAP3tV1DVrx0Z7Wwue9IiM0NfV0zemi8Hk4oQBB6CMwgRAUqIP3tl2H9VxhiV7ZsltVtQ06+7S++sW0FF01Nk6n9u0VjKa7GgUIQhuBCVdivlvX/D14H6mp18tbdiu/sESf7D6i3lERmpYeqzlZCSFX+PxE7FPoCoEJ12G+W+AZhqFNxQe1pLBUKz/erZr6Jo2KHaD//FaqrswYpoF9ou1uYlCxT8EMAhOuw3y3wGkpfJ6/oVSff134fOaYOM3JOl74PBywT8EMAhOuw3y3nqHweXvsUzAj/P5lwPWY7+afkwufD+wTTeHzr7FPwQwCE67DfDfzGpsMvf3ZfuUXloZ84fOeYJ+CGQQmXIf5bl3rqPD57MwEDR/S1+7mOQ77FMwgMOFKzHdrz1fh80lhUvg8ENin0BUCE7DIqlWrdMcdd6ixsVHz5s3TvffeG5D3/fKro8rfUNKu8Pk1mfGKO4V7cECgEJiABRobG3XbbbfpzTffVFxcnDIzM3XllVdq1KhRfr3fiYXP3//iQGvh8zlZ8Zo0IvwKnwNWIDABCxQWFuqcc87RWWedJUmaPXu2Xn755W4H5smFzxNO9VL4HLAIgYmgotxYs127dik+Pr7157i4OH3wwQemXnu0tkErt1L4HLCbxzCMDp+cMGGCcfDgwYB9WH19vaKjQ7vEVneEen8cOWJo375GnbiLeTzS6adHasCA9gf5UO6PyspKHT16VGeccYYk6ciRI6qpqdHQoUNbtzl8+LAOHTokSWpoaFBc0tmqqjNUVW/IkBQdIfWP9qhfL4/CLSNDed/wB/1xXDD64rPPPnvdMIzLT36808CU1OmT3ZWcnKwdO3YE8i1dLdT7Iylppc/J4ImJXhUVTWv3eCj3x/r16/XAAw/o9ddflyQ98sgjkqSf//znbbY7UlOvlzfv0rwrL1Ls3D8qJjpC00afqdlZ8SFd+Lwrobxv+IP+OC5IfeHzH5rrLslyic89KDd2XGZmpnbu3Kkvv/xSw4YNU35+vp577jlJvgufSwqbwueAW7gqMFlRwF0oN3ZcVFSUfv/73+uyyy5TY2OjbrrpJsUmjdCf3v2itfB5v95RrYXPsx7fp++en2R3swGcwNLAnD59eo9eH2orCvS0P5yuu+XGQr0/rrjiCl1++TdaC59PeHiN6hqbNCZhkH717XRNS49tLXw+aNAgm1vrLKG+b3QX/XGclX1haWB+85vf7NHrQ+0SX0/7w+m6W24slPvDV+HznAkJmp2ZoOQz+rfbfuDAgTa00rlCed/wB/1xnJV94apLslzic59wLjfWUeHzn045V5elUvgccBvLy4Hcd999Sk9PV0ZGhqZOnardu3ebfm1ubpq83rYHGbevKHD33Xdr5MiRSk9P18yZM1unFYSjgoICpaamKiIiQhs3brS7OX4rO1it/3rzM0189C3d9PRGfVhyUPMuHK61d2Xr+ZvP17cyhnUalqtWrdKXX36pc845R7/85S8tbLnz3HTTTRo6dKi+973v2d0U25WWluriiy9WSkqKbrzxRj3xxBN2N8lWNTU1ysrK0ty5c5WamqqFCxcG/0MNw+jsv4Bau3atcfjw4dafn3jiCePmm2/u1ns8+2yRkZi4wvB4lhqJiSuMZ58tCnQzLbN27Vrj9ddfN+rr6w3DMIx77rnHuOeee2xulX2efvpp49NPPzUuuugiY8OGDXY3p1vqGhqNV7fuNr77fx8YSfeuMJLuXWFc/38fGK9u3W3U1jeafp+GhgbjrLPOMoYPH27U1tYa6enpxieffBLEljvb22+/bWzatMlISkqyuym22717t7Fp0ybDMAxj5cqVxogRI8J632hqajIqKyuNtWvXGnV1dUZWVpaxfv36QL29z0y0/JLsgAHHF6o9evRot+eVhdolvqlTp7b+/4QJE/TCCy/Y2JruC+Q0n8TERCUnJwe4hcEV6MLnLSX0ioqK1KtXL79L6IWKSZMmqaioyO5mOEJsbKxiY2MlSV6vVykpKdq1a1fY7hsej0f9+vWT1Fy8oL6+PujzlG25h7lgwQL95S9/0cCBA7V27Vo7muBITz31lGbNmmV3M0zraJrPunVf6dVX94bsXNlgFj5vKaHXEhLdKaGH8LF3715t3rxZ48ePt7sptmpZ+Wfv3r267bbbgt4fQQnMyZMna+/eve0enz17trKzs5Wbm6vc3Fw98sgj+v3vf69FixYFoxmO0VV/SFJubq6ioqKUk5Njcev819E0nyef/KK1HN7Jc2U76ovc3FzHjwzdsbdSSwqbC58fPhacwueGj8pb4VrdB75VVVXp/vvv1+OPP97mil04ioyM1J/+9CdlZGRo5syZ2rZtm9LSgjemJSiBuXr1ap+PFxQUtPn52muv1bRp00I+MLvqj2eeeUYrVqzQmjVrXHVw7Gg6z8nH/BPnynbUF1L7/cMJjtY2aMXW3crfUGpJ4fO4uDiVlpa2/lxWVqYzzzwzoJ8B96qvr9e3v/1tTZ48WVdddZXdzXGMQYMGKTs7W6tWrXJfYHZm586dGjFihCTplVde0ciRI61ugqOsWrVKjz76qN5++215ve6aHtPRNB9f3DRX1jAMfbzrsJYUlmr5R7tVVdugc4b20y+mpeiqsXE6tW+voH12Swk9SbhRIBMAABKCSURBVKqrq2tTQg/hzTAMzZ07VykpKZoxY4bdzbFdeXl5a9H1Y8eOafXq1frZz34W1M+0PDDvvfde7dixQxEREUpMTNSTTz5pdRMc5fbbb1dtba2mTJkiqXngj1v6xFclH4+n/RmmZG6u7LvvvqvrrrtO5eXlmjZtmjIyMlqLlVuhpfD5ksJS/XPPkdbC53Oy4jXOosLnLSX0ZsyYoZSUFN10001KTU0N+uc61Zw5c1RQUKDy8nLFxcVp0aJFmjt3rt3NssW6dev017/+VaNHj9aKFSvUr18/Pfzww7riiivsbpot9uzZoxtuuEFHjhxRnz59dM011wS96o+lq5UUFBS03rNDaPTHyaNkr7jiDD3zTHG7cniLF4/rcuCPHf1h+Ch8Pip2gOZkxdta+JzVKNoKhX8rgUR/HBekvgiN1UrgLL6m+VxwwRDHryhz4GidXvywzGfh89HDBrrqXjIAaxCYCDinzpVtajL0j39VKH9Did74ZJ/qGps01kfhcwDwhSMEQl5L4fPnN5Sq5EDXhc8BwBcCEwHnhEW+WwqfLyks1VtfFz6fcNapunOqMwufn9xntbUBHT4AIAAITASU3Yt8lx2s1tKNZVq2sVR7DtdoSL9emnfhcM3OTNDwIX2D/vn+8NVnHk+j8vKKHXlpGwhXBCYCyo5FvusamrRm+z4t2VCqd3eWS5ImjThN908fpcmjTld0D0rVWcFXnxmGXLswOhCqCEwElJWLfH9RXqXnN5Tqbx82Fz6PHRijH10yQlefF+dX4XO7hNrC6ECoIjARUMFe5LumvlGrtjUXPv/gy+bC55eOHKo5WQmadO5pigxwqbru8PfeLQujA+5AYCKgfFX/CcQi3x0VPr96XJyGBqjweU/05N5tRxWT3LwwOhCKCEwEVEs4BGKUrNWFz3uiJ/duffVZbW0k9y8BhyEwEXA9KVxgZ+HznujpfciT+yw5+acBaReAwHF0YDphPh+scaSmXmtK6vWr371nW+HznuA+JBD6HBuYds/nQ/AZhqGNxQeVf0Lh89QzY/SfM9L0rYwzNSDGnsLn/gjWvVsAzuHYwLRjPh+s4avw+VVj43RuxH7d+K0L7W6eXwJ57xaAMzkmME++/NrRwsTMTXOnlsLnSzaU6I1P9urg1jpVr2tSzaFGxcX3UerDAzRsWIXdzewRpxadBxAYjghM36XB/F+IGM7hq/B5es1Avbpmr2qONUmSSkuOaf78TfrJT7xiiT8ATuWIwOyoNNjJock9IXfoqvD5yBGrWsOyRXV1o/70p6N66CGbGg0AXXBEYHZ0mdUwpMREL/eEXKLsYLWWbijV0o1l2nuk48LnHf2+9+9v8vk4ADiBIwKzo3uWiYleFRVNs6FFMKujwucPXDlKl6b4Lnze0e976FBnF0kHEN4cEZgMyXefjgqfX5MZr2GD+nT62o5+3/PmcX8agHM5IjAZku8OgSp83tHve9iwL4PZfADoEUcEpsSQfCcLRuFzX7/vggICE4BzOSYw4Swthc+XFJZqS2lz4fPL0s7QnMx4TXBY4XMAsAKBiVaGYWhr2WHlbyjVK1t26WhdoysKnwOAFQhM6PCxer28ZZeWFJZq+9eFz6enNxc+H5vg/MLnAGAFAjNMtRQ+X1JYolc/3vN14fMBrix8DgBWIDDDTEVVrV7avKtd4fM5mQkaHTfQ7uYBgGMRmGHg5MLn9Y2GxiYM0q++na5p6bHq25vdAAC6EhJHShaa9u3kwueDvNG6bkKiZmcmKPmM/nY3DwBcxfWByULTbXVV+DwmOtLuJgKAK7k+MFlouln7wue99f0Lz9KszPg2hc+BQOLqDsKJ6wOzo5UvwmGh6bqGJq3evk/53Sh8HmgcMMMXV3cQbly/PERHC0pbvdB0Xl6xkpJWKiJimZKSViovrzhon/VFeZUeeXW7zn9kjX6Q96F27qvUjy4Zofd+domeuSlLl6fF+hWW3f0OLQfM4uJqGcbxA2Ywvzuco7OrO0Aocv0ZphNWOrHiL+2WwufPFZaosAeFzzviz3fgcnh4C+erOwhPrg9MJ6x0EszgCEbhc1/8+Q4cMMNbR+uaWn11B7CK6wNTsn+lk0AHhx2Fz/35Dhwww5sTru4AVgqJwLRbIILD7sLn/nwHDpjhzQlXdwArhVxg2jFqsyfB4ZTC5/58Bw6YsPvqDmClkApMu4a5dzc4DMPQhqKDWry1VptWr1Ztg/2Fz/0NPw6YAMJFSAWmnaM2zQRHS+HzJYUl+lf5UcVESt8+L8Exhc8JPwDoWEgFphNHbXZY+Pw76Rp46HNdNnm0bW0DAJgXUoHppFGb+47UaNnGUj2/sVSlB45pkDda352QpNlZ8Tr39ObC5wUF/7K8XQAA/4RUYNo9arOhsUlvf1auJYWlWrujufD5+WcN1l1Tkyl8DgAuF1KB6e/AlZ6OrC09UK2lG0u17KTC57Mz45VE4XMACAkhFZhS9weu+DuytqXw+ZLCEr33+VeSpIvOtbbwOaxHsXkgfIVcYHZXd0fWflFepec3lOqFTWWqOFqnMwfG6EeXjNA1mfEaNqhPj9vDAdm5WJ0DCG9hH5hmRtbW1DfqtW17tKSwtLXw+eSUoZqdGZjC5y04IDsbxeaB8Bb2gdnZyNpP9x5RfmGpXvywTEdqGpQ42Kt7Lk/Wd8bFaWj/wBU+b8EB2dmcOG0JgHXC/kZbbm6avN62o1d7xURocHYvXf74u3rugxJdlDxUz80br7V3ZusH2ecEJSwlDshO5+/aq8uWLVNqaqoiIiK0cePGYDQNgAXCPjBzchK1ePE4xQ6LkTxS1ECP+k+O1CnpvfSLaSl6/z8u1X/PGaN/P2dIUFYJOZFTFsOGb77+uDIzbSktLU0vvviiJk2aFMzmAQiysL4k21r4/KtS9bouQsnR/WwpfN7C7nmk6Jy/05ZSUlKsaB6AIHNdYPZ0FGlL4fP8whKt/HiPahualDbM3sLnLVj9w/motwuEL49hGB0+uX79eqO2tjZgH1ZVVaV+/fr5/frVq2v02GOVOrFJvXtLd93VX5Mnd35f8UidoXW7GvROWb32HDUUEymdf2aULoqLUtJAeyrw9LQ/Qo2b++POO+/UgQMH2j0+d+5cTZw4UZL04x//WLfeequSk5N9vsfy5cu1YsUKSdLBgwe1dOnS4DXYZdy8bwQD/XFcMPoiOzvb5+XFTgNTUqdPdldBQYGys7P9fn1S0kqfI1oTE70qKprW7vGmJkPr/vWV8gtL9cY/jxc+n52VoOnpsfL2svcEu6f9EWpCvT+ys7P12GOP6bzzzuty2+TkZO3YscOCVrlDqO8b3UV/HBekvvAZmK66JGt2FKmvwufXTUjU7MwEJZ/R34qmmrJ6dY1uvHEll18BwAVcFZidzZl0W+HzvLziNpeXKVIQul566SX98Ic/VHl5uaZNm6aMjAy9/vrrdjcLQDe5KjB9jSLt0ydSF8werImPrm1T+HxWZryGO7jw+YIF23Ty7WGKFISmmTNnaubMmXY3A0APuWoeZsucyYSEPvJ4pL6nRqrv5Aj9w1OhkbH99eR147T+55fo3m+MdHRYSv4VKcjLK1ZS0kpFRCxTUtJK5eUVB6t5AICTuOoM81/lVSo5pVpD5vWW56hHZw6M0dXnxWtWZrzODEDhcyt1d7Fr6swCgL0cH5gnFz6PivDo0pShmp2VoEkjAlf43Gq5uWmaO7ewzWXZzooUUGcWAOzl2MDcvueI8gtL9NLmXZYUPrdaTk6itm/frmefbTQ1SpY6swBgL0cF5tHaBi3/aLeWbCjVR6WH1CsyQpelnaE5mfGacNbgoNdytdrkyTF66KFsU9t29xJuOGENUQBWsD0wDcPQ1rLDyt9Qole27NbRukaNGNpP900fpavGDNMpfXvZ3URHoM6sb9zbBWAV2wLz8LF6/X3zLuVvKNX2PUfUJzpS09JjbSt87nTUmfWNe7sArGJpYBqGocIvD7QrfP7QjDRdaXPhczeg8Hd73NsFYBXLAnNT8QH9x3vHtOf19erfO0pXnxen2ZkJShs20KomIARxbxeAVSwrXHD6gBj1i/bo199J1wcLLtVDM0YTlugxfxd17g4KRgCQLAzMuFO8WjChj64+L972VUKcigNz97VUf0pM9MrjaV65ZvHicQG7dN0yqKi4uFqGcXxQEb8bIPyQXA7BaE//BfPeLoOKALRwVS3ZUNbZgbkznJUGF4OKALQgMC1gJtT8LcbO5cLg6mjwEIOKgPBDYAaZ2VDz58Ds71kpzLNiUBEAdyAwg8xsqPlzYOZyYfAFe1ARAPdg0E+QdR5qx9fs9KeSD3MQrUHBCAASgRl03Qm17h6YqS8LANbhkmyQBfMeGJcLAcA6nGEGWWeXWgsKvgzI+xOQABB8BKYFCDUAcD8uyQIAYAKBCQCACQQmAAAmEJgAAJhAYAIAYAKBCQCACQQmAAAmEJgAAJhAYLoAi0QDgP2o9ONwLetpthRYb1lPUxLVgwDAQpxhOtCJZ5Q33LCBRaIBwAE4w3SYk88oGxsNn9uxSDQAWIszTIdZsGBbuzNKX1gkGgCsRWA6jJkzRxaJBgDrEZgO09GZY2Skh0WiAcBGBKbD5OamyeuNbPOY1xupZ57JVFPT1SoqmkZYAoANCEyHyclJ1OLF45SY6OWMEgAchFGyDpSTk0hAAoDDcIYJAIAJBGY3UKIOAMJXWAamP8HXUlCguLhahnG8RB2hCQDhIewC09/g81VQgBJ1ABA+wi4w/Q2+jgoKUKIOAMJD2AWmv8HXUUEBStQBQHgIu8D0N/g6KihAiToACA9hF5j+Bh8FBQAgvIVd4YKWgFuwYJtKSqqVkOBVbm6aqeCjoAAAhK+wC0yJ4AMAdF/YXZIFAMAfBCYAACYQmAAAmEBgAgBgAoEJAIAJBCYAACYQmAAAmEBgAgBgAoEJAIAJBCYQZHfffbdGjhyp9PR0zZw5U4cOHbK7SQD8QGACQTZlyhRt27ZNW7du1bnnnqtHHnnE7iYB8AOBCQTZ1KlTFRXVXLZ5woQJKisrs7lFAPxBYAIWeuqpp/SNb3zD7mYA8IPHMIwOn1y/fr1RW1sbsA+rqqpSv379AvZ+bkd/tOXm/rjzzjt14MCBdo/PnTtXEydOlCQ9++yz2rFjhx588EF5PJ522y5fvlwrVqyQJB08eFBLly4NbqNdxM37RjDQH8cFoy+ys7Pb/wNVF4EpqdMnu6ugoEDZ2dmBfEtXoz/aCuX+eOaZZ/Tkk09qzZo18nq9XW6fnJysHTt2WNAydwjlfcMf9MdxQeoLn4EZluthAlZatWqVHn30Ub399tumwhKAM3EPEwiy22+/XZWVlZoyZYoyMjJ0yy232N0kAH7gDBMIss8//9zuJgAIAM4wAQAwgcAEAMAEAhMAABMITAAATCAwAQAwgcAEAMAEAhMAABMITAAATCAwAQAwgcAEAMAEAhMAABMITAAATCAwAQAwgcAEAMAEAhMAABMITAAATCAwAQAwgcC0QF5esZKSVioiYpmSklYqL6/Y7iYBALopyu4GhLq8vGLNn79J1dWNkqTi4mrNn79JkjRsmJ0tAwB0B2eYQbZgwbbWsGxRXd2oBQu22dQiAIA/CMwgKymp7tbjAABnIjCDLCHB263HAQDORGAGWW5umrzeyDaPeb2Rys1Ns6lFAAB/EJhBlpOTqMWLxykx0SuPR0pM9Grx4nHKyUm0u2kAgG5glKwFcnISCUgAcDnOMAEAMIHABADABAITAAATCEwAAEwgMAEAMIHABADABAITAAATCEwAAEwgMAEAMIHABADABAITAAATCEwAAEwgMAEAMIHABADABAITAAATCEwAAEwgMAEAMIHABADABAITAAATCEwAAEwgMAEAMIHABADABAITAAATCEwAAEwgMAEAMIHABADABAITAAATCEwAAEwgMAEAMIHABADABAITAAATCEwAAEwgMAEAMIHABADABAITCLL77rtP6enpysjI0NSpU7V79267mwTADwQmEGR33323tm7dqi1btmj69Ol68MEH7W4SAD8QmECQDRgwoPX/jx49Ko/HY2NrAPgryu4GAOFgwYIF+stf/qKBAwdq7dq1djcHgB88hmHY3QbA9Twez2pJZ/h4aoFhGC+fsN3PJcUYhrHQx3vMlzT/6x9jDMNIC0pjAfiFwAQs5PF4EiWtJAwB9+EeJhBkHo9nxAk/XinpU7vaAsB/nGECQebxeP4mKVlSk6RiSbcYhrHL3lYB6C4CEwAAE7gkCwCACQQmAAAmEJgAAJhAYAIAYAKBCQCACQQmAAAmEJgAAJhAYAIAYML/B0f5aEvKlLuzAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 576x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import mglearn\n",
    "mglearn.plots.plot_linear_regression_wave()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.线性回归(又名普通最小二乘法)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "X的前五条数据:[[-0.75275929]\n",
      " [ 2.70428584]\n",
      " [ 1.39196365]\n",
      " [ 0.59195091]\n",
      " [-2.06388816]]\n",
      "y的前5条数据:[-1.18073311  0.50015912  0.13772889  1.17396178 -1.32035898]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "X,y = mglearn.datasets.make_wave(n_samples=60) # 获取数据\n",
    "print(f\"X的前五条数据:{X[:5]}\")\n",
    "print(f\"y的前5条数据:{y[:5]}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "lr.coef_:[0.39390555]\n",
      "lr.intercept_:-0.031804343026759746\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=42)\n",
    "lr = LinearRegression().fit(X_train,y_train)\n",
    "# lr.coef_中有权重(系数),lr.intercept_中有偏移量\n",
    "print(f\"lr.coef_:{lr.coef_}\")\n",
    "print(f\"lr.intercept_:{lr.intercept_}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集得分:0.67\n",
      "测试集得分:0.66\n"
     ]
    }
   ],
   "source": [
    "# 测试下训练集和测试集的性能\n",
    "print(f\"训练集得分:{round(lr.score(X_train,y_train),2)}\")\n",
    "print(f\"测试集得分:{round(lr.score(X_test,y_test),2)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### tips\n",
    "<P>intercept_属性是一个浮点数,而coef_属性是一个numpy数组,这是因为每个元素对应一个输出特征</P>\n",
    "<P>由于输入特征只有一个,所以测试集与训练集的均方误差较小.所以拟合效果不好,存在欠拟合的现象.但如果我们有多个输入特征时<br>\n",
    "线性模型的功能将会更加强大,但是容易出现过拟合的现象</P>\n",
    "<P>以下面的波士顿房价预测为例子.该模型有105个导出特征</P>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training set score:0.95\n",
      "Test set score:0.61\n"
     ]
    }
   ],
   "source": [
    "X,y = mglearn.datasets.load_extended_boston()\n",
    "X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=0)\n",
    "lr = LinearRegression().fit(X_train,y_train)\n",
    "print(f\"Training set score:{round(lr.score(X_train,y_train),2)}\")\n",
    "print(f\"Test set score:{round(lr.score(X_test,y_test),2)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<P>综上,我们发现训练集的拟合效果非常好,但测试集的拟合效果则有点差强人意.说明存在过拟合的现象</P>\n",
    "<P>因此,我们需要找到一个能够控制模型复杂度的模型</P>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3.岭回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集:0.89\n",
      "测试集:0.75\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import Ridge\n",
    "ridge = Ridge().fit(X_train,y_train)\n",
    "print(f\"训练集:{round(ridge.score(X_train,y_train),2)}\")\n",
    "print(f\"测试集:{round(ridge.score(X_test,y_test),2)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>可以看出岭回归更加适用于多特征的线性回归模型</p>\n",
    "<P>岭回归模型是通过设置alpha值来控制模型复杂度的</P>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集:0.79\n",
      "测试集:0.64\n"
     ]
    }
   ],
   "source": [
    "ridge10=Ridge(alpha=10).fit(X_train,y_train)\n",
    "print(f\"训练集:{round(ridge10.score(X_train,y_train),2)}\")\n",
    "print(f\"测试集:{round(ridge10.score(X_test,y_test),2)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集:0.93\n",
      "测试集:0.77\n"
     ]
    }
   ],
   "source": [
    "ridge01=Ridge(alpha=0.1).fit(X_train,y_train)\n",
    "print(f\"训练集:{round(ridge01.score(X_train,y_train),2)}\")\n",
    "print(f\"测试集:{round(ridge01.score(X_test,y_test),2)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-25.0, 25.0)"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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68bevXsZPnw45557LuAuBPbcc8/xl7/8Jegc77zzjjeRyqhM8d13382YMWO45ZZbeOedd3j66acBd9z5/Pnz+fjjj7Hb7Vx99dXMmzeP448/nu3bt3sX8NBWvbr//vv5/vvvyc3N9W7z5dprr+XSSy9l+vTpPPvss1x33XXe+vE7d+5kxYoVfPXVV5x77rmGq2dlA9kaX56t1+2LraREPzu7pCS57Ujq2RJMKkfOyZMnA+3lfG3du/PB55+z/osvWLR0KUIIDjQ18f3u3ZQNHMitt97K8uXLsVgsbN++nd0eW/1RRx3F8OHD/Y49evRodu/eTXFxsddcY1SmeMWKFSxatAiAs88+mx49egCwbNky1q5dy7BhwwB3+eTi4mImTJjAd999x29/+1vGjx/PmWeeCbjLJV988cVMmjRJN0P3k08+4bXXXgPgkksu4cYbb/R+NmnSJCwWCwMHDvReV7aSrfHl2XrdvhTPmulXMRVSk51tKiGfypFTK+lrtVpxOByeE9v481//yllnneW379y5c6mpqWHt2rXY7XbKyspo9nQEvQJkH3zwAZ07d2bGjBnccccdPPLII4Zlio0ymKWUTJ8+nfvuuy/osy+++IJ3332XOXPmsGDBAp599lnefPNNli9fzuLFi5k9ezYbN24Mef2+ZYt9yxunU0Z1Kkj0QjbpSizXbZZZgGY9SHV2tqmEfLqMnBpnnXUWTz75JGPGjMFut/P111/Tu3dv6uvrKS4uxm6388EHH4QVMZOfn89jjz1GeXk5t99+u7dM8e9//3vAXaZ48ODBjBw5kgULFnDTTTfx73//m/379wMwduxYJk6cyKxZsyguLmbfvn00NDTQuXNncnJymDJlCscccwwzZszA5XLx448/Mnr0aEaOHMlLL71EY2OjX3tGjBjByy+/zCWXXMK8efMYOXJk/G+gCUjUQjbJpvLepextbA3aXtglR3cd2Viu20yzgI6ysyO9r9EQFyEvhHgWOAfYI6U8wbPtMGA+UAZUA+dLKffH43xGJGrkbGpq8lva7oYbbgjre1dccQXV1dUMGTIEKSVFRUW8/vrrXHzxxUyYMIHKykoGDx7McccdF9bxSkpKuOiii5gzZw6PP/4411xzDRUVFTgcDk499VSeeuop7rzzTi666CLmz5/Paaed5q3zXlhYyL333suZZ56Jy+XCbrcz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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "plt.plot(ridge.coef_,'s',label='Ridge alpha=1')\n",
    "plt.plot(ridge10.coef_,'^',label='Ridge alpha=10')\n",
    "plt.plot(ridge01.coef_,'v',label='Ridge alphpa=0.1')\n",
    "plt.plot(lr.coef_,'o',label='LinearRegession')\n",
    "plt.legend()\n",
    "\n",
    "plt.ylim(-25,25)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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EkXQJ598EmgymVhjY6MsNjZWb98uOjpaP2XKlIbWz/Hpp58G7dixw/fUqVOqyZMn186aNasOADZv3uxfX18vbNq0KQAAjEYj02q1TQCwa9cun/Xr158CgMTEROPYsWPPuTZJ62nHW09fDogztOp0OhkATJo0qe7FF18MLywsVE2fPl03efLkBgAYM2ZM3aJFi2JnzpxZc9VVV9W0nSG2urpayM/P97zrrrsqAGDkyJH65OTkpp9++slr4cKFtUDH07Z7enq6Vxu9k7l9onD0i98VLmYK464c1/4rc8WKFQPmz58fd/To0Zy2H15H55s6mga5ddkDDzxQfM8993T7mgUu5eAXvytI9VnoCg8Pj3bTWjPGzjtVd2dToHt5ebVLZPPmzavcuHHjmVOnTskvueQSzcqVK0Mefvjhcs451qxZc2rOnDkdTgDoaErw1tOOO5q+fMWKFWXXXHNN7bfffutz9913R2dmZta+9NJLxVu3bj22Y8cOz+3bt/tOmTIlafXq1YXXXXedrvUxO4upo2nbAfTrREHnKLqp7dTSFzqFcUfHcOSJJ544GxQUZF61alW76xhkZmbq3n///SCTyYT6+nr2ySefNLc/T5o0qe6DDz4INJlMaGxsZJ9//nnzdM2zZs2qef3110PtbdJNTU3s999/92h7fOJYT38WLpSjqbq7MwV6dHS0+fnnnz+9atWq8MbGRjZjxoyaf//73wPsvbCqq6sF+2VTMzIy6tavXx8EiNPO79q167zTjjuavvzAgQOqlJQUw4MPPlhx5513ns3OzvYymUzIy8tTZWZmNj777LOlEydO1O3Zs+ecpsjAwECrRqNpfPnll4Psrz8vL89j0qRJDe0jIHZuX6NwNfvU0mq12vrrr78WbNiw4fSyZcuikpOTUxhjXKlU8lWrVp1WKBT8qquuitPr9QLnnKWmpjYsWrSouqNjBAcHn7fZRxAEPP/886cXL148+P777y9vXXbfffdVHDx40DMhISE1PDzcOG7cuLrCwkIlADzwwAPlBw4c8EhISEiNiIgwDh06tKGpqUkAgKVLl1ZVVFTIx48fnwSIFyT661//WjZ27Fin/cLtD3rqs5CQkJBq/wXs4eFhPXnyZE5X4lMoFNi0adPR5cuXD1yzZk2Y1WplwcHBpv/973/Hr7322tr33nsvKC4uLjUsLMw4fPjwxj17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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "mglearn.plots.plot_ridge_n_samples()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 4.lasso回归"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<P>与岭回归相同,lasso回归也是约束系数使其接近于0，但用到的方法不同.叫做L1正则化.L1正则化的结果是某些系数刚好为0</P>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集均方误差:0.29\n",
      "测试集均方误差:0.21\n",
      "使用到的特征数:4\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import Lasso\n",
    "import mglearn\n",
    "import numpy as np\n",
    "from sklearn.model_selection import train_test_split\n",
    "X,y=mglearn.datasets.load_extended_boston()\n",
    "X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=0)\n",
    "lasso = Lasso().fit(X_train,y_train)\n",
    "print(f\"训练集均方误差:{round(lasso.score(X_train,y_train),2)}\")\n",
    "print(f\"测试集均方误差:{round(lasso.score(X_test,y_test),2)}\")\n",
    "print(f\"使用到的特征数:{np.sum(lasso.coef_!=0)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<P>似乎拟合效果很差,我们发现模型只用到了105个特征的4个.其实lasso回归也可以使用alpha=0来控制趋于0的强度,现在我们尝试减小alpha</P>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集:0.9\n",
      "测试集:0.77\n",
      "使用到的特征数:33\n"
     ]
    }
   ],
   "source": [
    "# 我们增大max_iter的值,否则模型会警告我们,应该增大max_iter\n",
    "lasso001 = Lasso(alpha=0.01,max_iter=100000).fit(X_train,y_train)\n",
    "print(f\"训练集:{round(lasso001.score(X_train,y_train),2)}\")\n",
    "print(f\"测试集:{round(lasso001.score(X_test,y_test),2)}\")\n",
    "print(f\"使用到的特征数:{np.sum(lasso001.coef_!=0)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集:0.95\n",
      "测试集:0.64\n",
      "使用到的特征数:96\n"
     ]
    }
   ],
   "source": [
    "# 继续缩小aplpha\n",
    "lasso0001 = Lasso(alpha=0.0001,max_iter=100000).fit(X_train,y_train)\n",
    "print(f\"训练集:{round(lasso0001.score(X_train,y_train),2)}\")\n",
    "print(f\"测试集:{round(lasso0001.score(X_test,y_test),2)}\")\n",
    "print(f\"使用到的特征数:{np.sum(lasso0001.coef_!=0)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 岭回归与lasso回归小结\n",
    "<P>在实践中,一般两种模型，我们首选岭回归模型.但如果特征很多且我们认为只有几个特征是重要的,这时我们应当选择Lasso</P>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5.用于分类的线性模型\n",
    "<P>我们首先来看2分类,这时可用下面的公式进行预测:</P>\n",
    "    \n",
    "> y = w[0]*x[0]+w[1]*x[1]+...+w[p]*x[p]+b >0 \n",
    "\n",
    "<P>这个公式与回归公式的区别在于,我们并没有返回特征的加权求和,而是为预测设置了阈值。如果函数值小于0，则为分类1，大于0，则为分类0</P>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "E:\\myAnaconda\\lib\\site-packages\\sklearn\\svm\\_base.py:976: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.\n",
      "  warnings.warn(\"Liblinear failed to converge, increase \"\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x21ba9ce1eb0>"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x216 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.svm import LinearSVC\n",
    "import matplotlib.pyplot as plt\n",
    "X,y=mglearn.datasets.make_forge()\n",
    "\n",
    "fig,axes = plt.subplots(1,2,figsize=(10,3))\n",
    "for model,ax in zip([LinearSVC(),LogisticRegression()],axes):\n",
    "    clf=model.fit(X,y)\n",
    "    mglearn.plots.plot_2d_separator(clf,X,fill=False,eps=0.5,ax=ax,alpha=0.7)\n",
    "    mglearn.discrete_scatter(X[:,0],X[:,1],y,ax=ax)\n",
    "    ax.set_title(\"{clf.__class__.__name__}\")\n",
    "    ax.set_xlabel(\"Feature0\")\n",
    "    ax.set_ylabel(\"Feature1\")\n",
    "axes[0].legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x288 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mglearn.plots.plot_linear_svc_regularization()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<P>由上图可知,当c值越来越大时,出现过拟合的可能性就越大</P>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集分数:0.944\n",
      "测试集分数:0.972\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "E:\\myAnaconda\\lib\\site-packages\\sklearn\\linear_model\\_logistic.py:762: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  n_iter_i = _check_optimize_result(\n"
     ]
    }
   ],
   "source": [
    "# 我们在乳腺癌数据上详细分析LogisticRegression\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.datasets import load_breast_cancer\n",
    "cancer = load_breast_cancer()   # 加载数据\n",
    "X_train,X_test,y_train,y_test = train_test_split(cancer.data,cancer.target,random_state=42) # 划分数据集\n",
    "logreg = LogisticRegression().fit(X_train,y_train)# 构建模型\n",
    "print(f\"训练集分数:{round(logreg.score(X_train,y_train),3)}\")\n",
    "print(f\"测试集分数:{round(logreg.score(X_test,y_test),3)}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<P>训练集和测试集的精度都非常好,但由于二者的精度比较接近,可能存在过拟合的问题，不妨增大C,为其拟合一个更灵活的模型</P>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集分数:0.941\n",
      "测试集分数:0.965\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "E:\\myAnaconda\\lib\\site-packages\\sklearn\\linear_model\\_logistic.py:762: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  n_iter_i = _check_optimize_result(\n"
     ]
    }
   ],
   "source": [
    "logreg100 = LogisticRegression(C=100).fit(X_train,y_train)# 构建模型\n",
    "print(f\"训练集分数:{round(logreg100.score(X_train,y_train),3)}\")\n",
    "print(f\"测试集分数:{round(logreg100.score(X_test,y_test),3)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集分数:0.925\n",
      "测试集分数:0.958\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "E:\\myAnaconda\\lib\\site-packages\\sklearn\\linear_model\\_logistic.py:762: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  n_iter_i = _check_optimize_result(\n"
     ]
    }
   ],
   "source": [
    "logreg001 = LogisticRegression(C=0.01).fit(X_train,y_train)# 构建模型\n",
    "print(f\"训练集分数:{round(logreg001.score(X_train,y_train),3)}\")\n",
    "print(f\"测试集分数:{round(logreg001.score(X_test,y_test),3)}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXIAAAFlCAYAAAD292MqAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOydedxd09X4vysDMUUSQkkQQqmaRdFSNdVQjaGo/jpoqaFvW0qrXq236GRs0fbVlhKqWlRR7Usj5qKGhBhjqLFBDCHEECJZvz/WPnnOPXefe/e59z7y3Mf6fj7n8zzn3HX32efcs9fZe+211hZVxXEcx+leBizsCjiO4zjt4YrccRyny3FF7jiO0+W4Inccx+lyXJE7juN0Oa7IHcdxupxBC+Okyy67rI4ZM2ZhnNpxHKdrmTJlykuqOrJ4fKEo8jFjxjB58uSFcWrHcZyuRUSeih1304rjOE6X44rccRyny3FF7jiO0+UsFBu54zhOKnPnzmX69OnMmTNnYVflPWPIkCGMHj2awYMHJ8m7Inccp08zffp0llpqKcaMGYOILOzq9DqqysyZM5k+fTqrrrpq0nfctOI4Tp9mzpw5LLPMMu8LJQ4gIiyzzDKVRiCuyB3H6fO8X5R4RtXrdUXuOI7ThBkzZrDPPvswduxY1l57bXbeeWceeeQRdtxxR4YNG8Yuu+yyUOvnNnLHcfoVl9/9DCdPfJhnZ73FisMW44gd1mS3DUe1XJ6qsvvuu7Pvvvty4YUXAjB16lSef/55jjjiCN58801++9vfdqr6LeGK3HGcfsPldz/DUZfex1tz5wHwzKy3OOrS+wBaVubXX389gwcP5uCDD15wbIMNNljw/w033NB6hTuEm1Ycx+k3nDzx4QVKPOOtufM4eeLDLZd5//33s/HGG7dbtV7FFbnjOP2GZ2e9Vel4f8EVueM4/YYVhy1W6XgKH/7wh5kyZUrL338vcEXuOE6/4Ygd1mSxwQNrji02eCBH7LBmy2Vus802vP3225x11lkLjt15553ceOONLZfZaVyRO47Tb9htw1Ecv8e6jBq2GAKMGrYYx++xblteKyLCZZddxqRJkxg7diwf/vCHOfbYY1lxxRXZcsst2Wuvvbj22msZPXo0EydO7NzFVMC9VhzH6VfstuGothR3jBVXXJGLL7647vg///nPjp6nVTrWIxeRgSJyt4j8vVNlOo7jOM3ppGnlUGBaB8tzHMdxEuiIIheR0cCngN91ojzHcRwnnU71yE8DvgvMLxMQkQNFZLKITH7xxRc7dFrHcRynbUUuIrsAL6hqQ0dLVT1TVcep6riRI+sWgXYcx3FapBM98o8B40XkSeBCYBsR+UMHynUcx3ESaFuRq+pRqjpaVccA+wDXqeoX2q6Z4zhOH6FqGtsnnniCTTfdlDXWWIPPfvazvPPOO4BlUjzkkENYffXVWW+99bjrrrs6Uj8PCHIcp/8xewZM2AlmP992UVka20984hM89thjPPjgg/z0pz9dkMb2/PPPr/vOkUceyWGHHcajjz7K8OHDOfvsswG46qqrePTRR3n00Uc588wz+drXvtZ2/aDDilxVb1DVhZth3XEc58aT4Onb4MYT2y6qLI3tlltuybbbbstSSy1VI6+qXHfddey5554A7Lvvvlx++eUA/PWvf+VLX/oSIsJmm23GrFmzeO6559quo/fIHcfpX8yeAVMvAJ1vf9vslVdNYztz5kyGDRvGoEEWOD969GieeeYZAJ555hlWWmmlBbL5z9rBFbnjOP2LG08yJQ72twO98iqoat2xbA3ORp+1gytyx3H6D1lvfJ5NLjLvnbZ75VXT2C677LLMmjWLd999F4Dp06ez4oorAtYD/89//rNANv9ZO7gidxyn/5DvjWe02SuvmsZWRNh666255JJLADjvvPPYddddARg/fjy///3vUVVuu+02ll56aVZYYYWW65bhitxxnP7D9Dt6euMZ896x4y3SShrbE088kZ///OesvvrqzJw5k/333x+AnXfemdVWW43VV1+dAw44gDPOOKPletXUMWaz6W3GjRunkydPfs/P6zhO9zFt2jQ+9KEPLexqvOfErltEpqjquKKs98gdx3G6HFfkjuM4XY4rcsdxnC7HFbnjOE6X44rccRyny3FF7jiO0+W4Inccx2lCWRrb8847jzXWWIM11liD8847b4F8WRrbhx56iM0335xFF12UU045pWP1G9SxkhzHcRYye16xJw+/8nDd8TWHr8kl4y9pqcwsje2+++7LhRdeCMDUqVN57rnnOO6445g8eTIiwsYbb8z48eMZPnz4gjS2++yzDwcffDBnn302X/va1xgxYgS/+MUvFmRD7BTeI3ccp9+w/nLrM3jA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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 比较上述3个c值的情况\n",
    "plt.plot(logreg.coef_.T,'o',label='C1')\n",
    "plt.plot(logreg100.coef_.T,'^',label='C100')\n",
    "plt.plot(logreg001.coef_.T,'v',label='C001')\n",
    "plt.xticks(range(cancer.data.shape[1]),cancer.feature_names,rotation=90)\n",
    "plt.ylim(-5,5)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEGCAYAAAB7DNKzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXxU1fn48c+TjUAWw6ZEkhCMFpEACaBSlSUiIFi1bogiglLQoihotVZta2urVn8KWm37dQFBoa51Q0TRuiAuLCEgiyhQ1EDYQ5JJIOv5/ZFMmEzu3MwkmdxJeN6vFy8yc+/ceUjtfe455znniDEGpZRSypcwpwNQSikV2jRRKKWUsqWJQimllC1NFEoppWxpolBKKWUrwukAgqFLly4mNTXV6TCUUqrVWLNmzX5jTFerY20yUaSmprJ69Wqnw1BKqVZDRH7wdUy7npRSStnSRKGUUsqWJgqllFK22uQYhVJKeSovLyc3N5cjR444HYrjoqOjSUpKIjIy0u/PaKJQSrV5ubm5xMXFkZqaiog4HY5jjDEcOHCA3Nxcevbs6ffntOtJKdXmHTlyhM6dOx/TSQJAROjcuXPALStNFKrV2rZtGzfNuJWEzl0JCw8noXNXbppxK9u2bXM6NBWCjvUk4daY34MmCtUqvffee2QMPJ2X1+4h5vIHSb79DWIuf5CX1+4hY+DpvPfee06HqFopfQCpTxOFanW2bdvGuKsmEHvh3cSeM5HIjolIWDiRHROJPWcisRfezbirJhzT/8dWjRPMB5Ddu3czfvx40tLSOO200xg7dizfffcd6enpzRb/wYMHGTlyJKeccgojR44kPz+/Wa6riUK1Oo/NeYJ26aNo17235fF23XvTrs9IZj/+99r3GnpK1KdIFcwHEGMMl1xyCcOHD2fbtm1s2rSJBx54gD179jTrv+Ghhx5ixIgRfP/994wYMYKHHnqoWa6riUK1OgsXLaJdn/Nsz2mXPpIXFy4CGn5K/POf/6zdWKpRDyD++vjjj4mMjOTGG2+sfS8jI4Pk5OTa1zt27GDIkCEMGDCAAQMG8MUXXwCQl5fH0KFDycjIID09neXLl1NZWcnkyZNJT0+nb9++zJ49G4C33nqLSZMmATBp0iTefPPNgGO1ouWxqtUpPHSQ44473vaciPiuFB06WOcp0fMGENkxkchzJhLZcxD3/eVeOo+dScypQyyPj7tqAjlrVgHVN5OFixZReOgg8QmdmHD11dw28xbS0tKC849VLWbhokXEXP6g7TnVDyB38+QTcwK69oYNGxg4cKDtOccffzzLli0jOjqa77//nquuuorVq1ezaNEiRo8ezT333ENlZSUlJSXk5OSwc+dONmzYAMChQ4cA2LNnD4mJiQAkJiayd+/egOL0RROFanXiEzpRUbCXyI6JPs+pKNxHXEInv54S4zIvoHTnt3UShefx8j4jmTnrdj757DPapY8i5vIHOe6446ko2MvLaz9kwcDTeeXfCxkzZkyz/RtVywvkASQYysvLufnmm8nJySE8PJzvvvsOgNNPP53rr7+e8vJyfvnLX5KRkcFJJ53E9u3bmTFjBhdccAGjRo0KSkxu2vWkWp0JV19N6cYPbc8p3bCMayZc7Vc3VWzGGIo3f+rzeHhKf95dulQHz9s49wOIHfcDSKD69OnDmjVrbM+ZPXs2J5xwAuvWrWP16tWUlZUBMHToUD777DO6d+/OxIkTWbBgAR07dmTdunUMHz6cp556il/96lcAnHDCCeTl5QHVXVbHH2+f+PyliUK1OrfNvIXSDR9QunOz5fHSnZs5uOotDh3KpyD/ABF+PCVWlRT6PH74+6+IzRgblL5rFToCeQAJ1LnnnktpaSnPPPNM7XurVq3ihx+OruxdUFBAYmIiYWFhvPDCC1RWVgLwww8/cPzxxzN16lSmTJlCdnY2+/fvp6qqissuu4z777+f7OxsAC666CLmz58PwPz587n44osDjtWKdj2pVictLY1X/r2QcVdNoLzPSNqljyQivisVhftwrVuKa/0yOo64gaXb9yARUbi++Yi4/r6b5hWF+wjrEO/zePGmT+k28dF675fn51GUvZjiTZ9SdbiAf6yKwhijYxat1G0zb2HBwNOJ7DnI8qGgdOdmSjcuY9aCVQFfW0R44403mDlzJg899BDR0dGkpqYyZ87RsY7p06dz2WWX8eqrr5KVlUVMTAwAn3zyCY888giRkZHExsayYMECdu7cyXXXXUdVVRUADz5YPbZy1113MW7cOJ577jlSUlJ49dVXG/OrqB+/MaZZLhRKBg0aZHTjorZv27Zt3Hf/X1i46N+YinLCOsQT03sYcQN+UTt+UbpzM3te+SOJkx/3OaaR//FcTFUlnUZMtTz+w8MXkvKbN5Gw8Nr3Dm9bzf53HyO2/2hi+40iombMonTjh5Ru+EDHLELM5s2b6d3bukXo6b333mPcVRNo5/UAUrphGaUbl7WZ/12tfh8issYYM8jq/KB3PYnIXBHZKyIbPN7rJCLLROT7mr87+vjs+SKyRUS2ishdwY5VtS5paWnEx8XT6Yxf0uPOt0m++UU6jZhaJyG0696b2P6jObT8BctrlO7cTFH2u7TrfqrP4xIeVafvujw/j/3vPsbxl/2ejsMm+TVmofM0WocxY8aQs2YV4wcmUvza3eQ+dhnFr93N+IGJ5KxZ1SaSRGMEvUUhIkMBF7DAGJNe897DwEFjzEM1CaCjMea3Xp8LB74DRgK5wCrgKmPMpoa+U1sUx46Ezl2JufxB2wqo8vw88ubeTNygC4ntN/poN9X69ynKXkJkl2Qq8vOI7T+q/vG1S+jR/USKEgcSe85EAA5+9AwSEUXHYZN8fqdr+QLGD0zkySfmHH1KTR9Fuz7naevDAf62KI4VIdeiMMZ8BnjXk10MzK/5eT7wS4uPngFsNcZsN8aUAS/VfE4d4zyfzgsOHmD3i7/h4EfPUJ6fZ3l+RHxXTGU5pqKc3Qvv4MdHL2X3wjswFeV0vfQeKgr20G3io9bHL7mH/QcO1hk8L970KbH97MsR3RP+dLkR1RY4NZh9gjEmD8AYkyciVmUp3YGfPF7nAmf6uqCITAOmAaSkpDRjqCqUeD6de85ncK3/gN0v3E6XC26jfVrdhyL3YHWnEVPrjUOYygqqSgqJ7Jjo8/j+ogIWL36ndvC86nCBX5VURYcO+jWPo7ymYirQSVxKtZRQLo+1WgvXZz+ZMeZpY8wgY8ygrl27BjEsFUx2ffl2T+cdh03i+Mt+z/53H6vXsnCtf5+Y3sMsv6+hiid33bxn37VERPldbx/ociNKhSKnEsUeEUkEqPnb6v91uUCyx+skYFcLxKYc4r0mU7fr/0HFiRn865nnOPnkU+id3p+I3ufaPp3H9h9FUfbi2vdKd27Gte4D4gb8wvIzrpz3fCYRqFs3n5aWxpNPzOHXN9zgd7194aGDfrc+VGjJy8vj/BHD2L17t9OhOM6pRPE24B4JnAS8ZXHOKuAUEekpIlHA+JrPqTbE3YKI79iZsWMvoKSsgrLSIxz58Rv2LLyT8NiOdJs0h5Q73qRSwunQ73zb68X2G03xpk8pz88j/5N57HnpXo4bfIXlYHfpzs0UrbWveCrduIxLf3lRnVbOghdeoDB7se2Ev9KNy5h164ygzvZVwfXwA/ez8ssVPPzA/c1yvZZYZvzVV1+lT58+hIWF0ZwFPUEfoxCRfwPDgS4ikgv8EXgIeEVEpgA/AlfUnHsi8KwxZqwxpkJEbgbeB8KBucaYjcGOV7Ucz/GGuHF/o2PNeEPhyv+Q/+H/ccL4v9RpPVQdcfk5y7qA3S/+hpjThtPx3F+R/99nCSstsqyLv+/eu3nksTmYff+zPH7HbTO5+NLL642JFH3+AntevpeEQRfSvu9oy3r7tLQ0Jlx9NS+v/ZDImoopK42d7auCJy8vj/nzn+ejidGcN38ed979e7p169bo67mXGZ80aRIvvfQSADk5Oc2+zHh6ejr/+c9/uOGGG5r1ukFPFMaYq3wcGmFx7i5grMfrJcCSIIWmHGS3qqtERBE38MJ6XUxh7eP9WgxQ2nUAY2ifmklEp+7ExMQwfmAiLy68m6JDB4lL6MQ1E65m1oJV1TfzCROY/fjf6x2/9P7XuPjSyy1j7HThnbT7djkF7z9JxeaPKS48VO+6ENzZvip4Hn7gfib1CyczMYxr+woPP3A/jz3xVKOv52uZ8R07dtS+3rFjBxMnTqS4uBiAJ598krPOOou8vDyuvPJKCgsLqaio4J///CdnnXUWU6ZMYfXq1YgI119/PbNmzQpaCbAu4aEcYVcNVLzpU7pd80i992NOG4Zr/Qf28xfWv09s3/OIOfUc9r5+P/G9z2HStRN58ok5PquK3GMP3sdvmnGrbcVSzKlDMPv+Vztfwte1fS034t36UKHB3ZrYOLV6Jv6dZ0L6s01rVbTUMuPBEspVT6oNs6sGqjpcaNnFFDfgF7jWvW87NlC0+h1cG/5L8bef0+FnP6d406fMunVGs8fo1lDF0rZt21i8ZCkiwoEvXyVv3s38NPsKCl/+7TE/2zdUuVsTiXHVt8fEuDCu7RvebGMVvpSXlzN16lT69u3LFVdcwaZN1XOLTz/9dObNm8d9993HN998Q1xcXJ1lxpcuXUp8vO/KveagiUI5wq4ayN3F5Mm9AB/GsPvFO/lxzjj2vzuHsgM/VQ9cfzyXva/9mS4X/5bEax9DIqIo2fIFYqp4bM4TjVo6o6kVS55VXHHj/kbKb94k8bon6TT4UsBwwZjR2pIIMe7WxJ1eM7buPBPmz5/X6AqollpmPFg0UShH2FUDubuY3A5vW83uF25HIqLodu1jpNzxJomTHiesfRy7n59J3vO3YKoq6XbtY3Q4+YzaeRXH/Xwc5ZVVvJS923aLU19zN2Lijmt0xZLOyG6dvFsTbk1tVbTUMuPBoolCBZ3VjTg5OYWS1db7+Xp2MdktwNfp3CmcMP4vSHhknRVjoboFUvDVq5ww/i/EDbnW54167ty5PvfLLi0ro+hz68UE3XxVLAVz/2UVHL5aE25NaVW4lxlftmwZaWlp9OnTh/vuu48TTzyx9pzp06czf/58Bg8ezHfffVdnmfGMjAwyMzN5/fXXufXWW9m5cyfDhw8nIyODyZMn1y4z/sYbb5CUlMSXX37JBRdcwOjRowP/RVjFr8uMq2DytSDekQ3LyF/1FgnnXEP8GZfU+1zhyjc4tPxFIrukEJ3an47DJvv8jvxPn8dUlNdZfsOfhfuKls+nKHsJnS+/j7AOCR57SxQS1j6e6JR+lGz9ii4XzLLcJrV052Zc7zxAzppV9bqQ/F2ssPi1uzl0oHn2NVa++bMo4KwZ02HtC8w+z/fz86wPq5AB1zapAioUBLoooFY9qaDxVQILUF5WikREkf/xXA6t+DcdfnYW8YMvQ8IiKN2wjPKNy3j2//7Br2fcSmy/O22/J7bfaHYvvKNOovBVOeUpOn0Uh9YsoepIMXtfv5/Y/qPpds0jtcnMtf4DJDyC/CW+51n4qlhyev9lFbhVX3/JilUu5qywP+/ssi9aJqAQoolCBY1V94vnhj/dJj529Kacs4Tdz8+kfXQ7rrvuutq5CL+aOrVRW5n6qpyq97nSktquLe+5Eh2HTaLDyWew5+V7GXNye955zXoehhX3GExDcz50Rnbo+HzlWqdDCFmaKFTQLFy0iJjLH6x97TneUO+mnDWFDj87C9c7DzDr1hm1N2B/b7jeC/sFMjkvtv9o+/WjMsZw3HEJAXUR6Yxs1ZboYLYKGu/y0qLsxQ3elL0HeP3Z8N61bmm9hf1iThuGa937ta/L8/M4+NEz/PT3a/jh4Yv46e/XsP/thzFVlQ3uLRGXeUHAq7veNvOWOntYePNcD0qpUKeJQgWNdwlsIBv+uPlzwy1asxhTUUp5fh6msoLy/DyqSksoWvMOpTs31y2vveYRUn7zBt2ueYR2yemIMZQf+Mny2m6NGUtwz8h2vfMAruUL6sTmWr4A1zsP6Ixs1Wpo15MKGu/uF3/HDYoOHeSmGbeycNEiCg8dpH2HWA68fh9xmWOJTh91dKvStUsoWv8+8WddSVXxIXa/+BuqDhch4ZFE9xxAx/NuYM8rfwTghHF/qr9e07lTiOl1Fntf+zOR1z7ms5vKPZawbds2HpvzRG1c8QmdmHD11dw28xbLG757DwurdaTsxjeUM556+in25+1v8LwuiV24adpNLRBR6NBEoYLGe0E8f8cNTHhE7bwG92qtJavfpCh7CaUblnHYVURcQicuuvAC6H0Fb7z5FsVFBYRFdSAmfQTxZ15aWz0VLhCTMcZ+DKLfSIqyF9fb3c6tdMMyhpx9FhkDT6+3iuzLaz9kwcDTfe577WsdKRV6kpOSWX14NasTfJfWDzo0iAFJAxp1/d27dzNz5kxWrVpFu3btSE1NZc6cOVx66aW1azY11R133ME777xDVFQUaWlpzJs3j4SEhCZfV7ueVNB4d7+0P2lQnRnXVlxrl9D+5DPrzGYGqAyLoFLCKC4sICb+OCZcfRX3/f5eXpj/PK6CfLZ+/z2/nvYrInbmsGfuzRS/djfjBybSvn00Mf0b2MMiYwzFGz+2PFa6czOH1y/lv598qrOs27isIVn0LO5JdEW05fHoimh6Fvcka2hWwNd2LzM+fPhwtm3bxqZNm3jggQeafZnxkSNHsmHDBtavX8/Pfvaz2ol4TaWJQgVVnS1Ef8qmaPXb9uMN698nYcjRSqE64wsTq5fviBv3t3rLcLif3A8d2EtlZQWHDuzlySfm4Co85F+Z7OEiCj973nIs4dxzs2jfL7BBeNX6xMXFkZGRQbrLeiOhdFc6mRmZxMbGBnxtX8uMJycf3cRzx44dDBkyhAEDBjBgwAC++KJ6vkZeXh5Dhw6tji09neXLl1NZWcnkyZNJT0+nb9++zJ49G4BRo0YREVHdUTR48GByc3MDjtWKdj2poPPsfnHP1LZacvvgqrfoOOKG2q4pu3LayHMmEtlzEOOummA5M9rN7/La6Fhca9+z3Fti4BmD65T5WqkehL9bu5hauawhWeTk5LAhdgNHIo7Uvt+U1gQ4s8z43LlzufLKKxsVrzfHWhQi0ktEcjz+FIrITK9zhotIgcc5f3AqXtU8PFsYxa/dTe5jl9V2E5mKMmL7Ht3PqjHltN78Kq9d/z7tTxlMeKdkSstKMRjA4F7eRve9Pnb4alU0pTXhr+ZcZvyvf/0rERERTJgwoVlicyxRGGO2GGMyjDEZwECgBHjD4tTl7vOMMX9u2ShVMPjqJjquY+cml9N686e81pWzlJLvviQqJZ0u18yut8psh9j6y55701nWbYf3WEVTWxPQssuMz58/n8WLF7Nw4UJEpNExewqVMYoRwDZjzA8NnqnaLO+n/0DKaX1xD6jveele8j+pOwZx4P0n2fPKHzAVZZiyYlzrP6Qoe3FtV5V7oLqsvJwjG5bZxqGzrNsO71ZFc7QmWmqZ8aVLl/K3v/2Nt99+mw4dOjQ6Xm+hMkYxHvi3j2M/F5F1wC7gN8aYjVYnicg0YBpASkpKUIJUwdXYctqGnuTHjBlDTEwHKksK2L3wDqpKCpGo9mCqiO1/PnGZY+ssBLj7hdvpcsFttE+rjiOm9zCK1r5L1Emn677Xxwj3WMXW9lub3JqAo8uMz5w5k4ceeojo6Oja8li36dOnc9lll/Hqq6+SlZVVZ5nxRx55hMjISGJjY1mwYAE7d+7kuuuuo6qqCqC2uunmm2+mtLSUkSNHAtUD2v/617+aFDuEwDLjIhJFdRLoY4zZ43UsHqgyxrhEZCzwuDHmlIauqcuMt161y5L3GcmRwoOEx3a03yN7+QLbPavdbppxKy+v3UPsORMpz89j94LbOP7yP/i88e99/X66TXyUyI6JlOfncWjR7YSFh9POZt9r3dI0dPmzzLi3t5e8zcrslZw54EwuHHthkCJzRqDLjIdC19MYINs7SQAYYwqNMa6an5cAkSLSpaUDVC0n0HJaf9dL8hyrKMpeTGw/+02FYvuPqt56lerurSMlxT4H4XXf67Ypa0gWPZOb3ppoC0KhRfES8L4xZp7FsW7AHmOMEZEzgNeAHqaBoLVF0XZ4tjCa+iTvvlbJkVK6TXq8wU2Fdi+8g+SbX9QNhtqAxrQo2rJW1aIQkQ7ASOA/Hu/dKCLuWSmXAxtqxiieAMY3lCRU22JXThvok7z7WlVlhwPa40IHqtsGvXVUa8zvwdHBbGNMCdDZ671/efz8JPBkS8elQktzrpeUlpZWW4brzx4XOlDdNkRHR3PgwAE6d+7cbCWjrZExhgMHDhAdbb1MiS+hUvWkVIuZcPXVLFq9lOOGXefzHNe6pUTEH8+B1+/jrddf1ZVeW7mkpCRyc3PZt2+f06E4Ljo6mqSkpIA+o4lCHXNum3kLz2cOovTkwT6rnorWLCY8LIz331vMueee60CUqjlFRkbSs2dPp8NotTRRqGNOWloar728iEvHjSeq9whiM8ce3eNi3VKKct6jXVQk/3ntFU0SSqGJQh2jxowZw4acbO67/y+8+uIsSg8XI+GRREZFMeHKK7jvD7/X7ialajheHhsMWh6rlFKBCdnyWKWUUqFPE4VSSilbmiiUUkrZ0kShlFLKliYKpZRStjRRKKWUsqWJQimllC1NFEoppWxpolBKKWVLE4VSSilbTm9ctENEvhGRHBGpt+aGVHtCRLaKyHoRGeBEnEopdSwLhUUBs4wx+30cGwOcUvPnTOCfNX8rpZRqIaHe9XQxsMBU+wpIEBHf25IppZRqdk4nCgN8ICJrRGSaxfHuwE8er3Nr3lNKKdVCnE4UZxtjBlDdxXSTiAz1Om61ua3luugiMk1EVovIat3uUCnV3PLy8jh/xDB2797tdCgtztFEYYzZVfP3XuAN4AyvU3KBZI/XScAuH9d62hgzyBgzqGvXrsEIVyl1DHv4gftZ+eUKHn7gfqdDaXGOJQoRiRGROPfPwChgg9dpbwPX1lQ/DQYKjDF5LRyqUuoYl5eXx/z5z/PRxGjmz593zLUqnGxRnAB8LiLrgJXAu8aYpSJyo4jcWHPOEmA7sBV4BpjuTKhKqWPZww/cz6R+4WQmhnNt3/AGWxVtrZtKt0JVSikbeXl59OmVxsap4STGhZFXVEX6s5Vs3LKdbt26WX5m1ozpzH/uaSb/6gYee+KpFo64cXQrVKWUaiR3ayIxrvp2mRgXZtuqaIvdVJoolFLKB/dN/06vab53nonPJBBoN1VroIlCKaV88G5NuPlqVXgnFruE0ppoolBKKQu+WhNuVkkg0G6q1kIThVKqzWpK9ZGv1oSbdxJoTDdVaxEKiwIqpVRQeE6SC7T6aNXXX7JilYs5K+zPO7vsi9rv8t1NRaNiCBVaHquUapPcZa0fXRXGeS9V2ZazNtd3uUto6x33o6TWaVoeq5Q65rRk9VGg3VStjbYolFJtTmMmyTXFOWdksmJVToPnnX16Bp+vXNvs398ctEWhlDqmtHT10ecr12KMafBPqCaJhmiiUEq1KcGsPmprazj5SxOFUqpNCXSSXKDXPhaXGtdEoZRqdk49eTdmklyg127uNZxaQytFE4VSqtk59eQdzOqjYFVRtYZWilY9KaWaVUvOX/AWrOqjYFVROfm78qZVT0qpFuPk6qmfr1zLrl27GH3uUPLy8hqsPvK32ydYVVStZaVZJ7dCTRaRj0Vks4hsFJFbLc4ZLiIFIpJT8+cPTsSqlPJPKKyeGkhXjq9z8/LyyDpnMOcO+Tnr1q1rtioqz8QUCr8rfznZoqgAbjfG9AYGAzeJyGkW5y03xmTU/Plzy4aolAqE06unBjLgbHfuH++5i1Urv2bt6q+ZOnmCzyqqy3oJQwYP9Pvm7pmYnP5dBcKxRGGMyTPGZNf8XARsBro7FY9SqmlCYfXUQLpyfJ2bl5fHokUvUmXgv9d2YOPGjUxOr7K+SGU5+3bv4r57f9dgbJ6Jad68ucx/fl6TflctWS0VEmMUIpIKZAJfWxz+uYisE5H3RKSPzTWmichqEVm9b9++IEWqlPIlmPMXoOEbYyBdOXbn/vGeu6CqiqkDI8lMDOe6jEjmr6uof42iKl7bVM7Hk2JYtPBFv8c5MhPDOfm4Sib0oUm/q5aslnK86klEYoFPgb8aY/7jdSweqDLGuERkLPC4MeaUhq6pVU9KtazmWj01Ly+P664Zz/MLX6533qwZ05n/3NNM/tUNlst1z5oxHda+wOzzjn7/rA+rkAHX1jvf17klp17GwhdfQEwV390cW1vhlPaEi8NeuSIyDJKPE1ZcH8P9n5XTbvAUn8uIe/5+AE77h4tN02Mb/bsKRrVUyFY9iUgk8Dqw0DtJABhjCo0xrpqflwCRItKlhcNUSjWgueYv2A0u2409BNLtZXfuvxe+CFVVTMmMrDN2cP3AaGbNmF5bNbVr1y6io8LJP2x4eEUZ9w6JtO0y8vz9PLyijMn9o5r0u2rpainHWhQiIsB84KAxZqaPc7oBe4wxRkTOAF4DepgGgtYWhVItqznmL9g9JXu2AKxaCVYthNpjXufbnTvpjRJe21zB1hl1n/bziqo45ckSvli1ln79+jHt+kn8e+ECPpscw3kvlLBxegx/+wrL1ot3a+ucucWs+Kmy0b+rYM3psGtROJkozgGWA98A7pGiu4EUAGPMv0TkZuDXVFdIHQZuM8Z80dC1NVEo1fr4SgYN3Rj97fb672dfctO0KWSvzWbbjBjLc6e9c5iIMPjHBe3rHZv+7mG+PHwSHTt2ZOWqlfwqI5w557dn1tIjiMAdZ0VZ3rADSWKB/p6ach1vIZkogkkThVKti10y+Ntf/1zvxjhzWSXv5saz/Otsy+PeZn1YxYriVL7/diMnJQhrboitH0NRFX3+4WKjzdhB2hMuIsOhsgq+n3F0DCP9n8WWrYrm3vnO1/Wao1WhiUIpFdJ8PSUX97qM1159xfLGePLfXVwzcTIbv8nxq9urfQSsuD6Gs+cW1xuYBogKhymZkZatCbfp7x6mqNTw1pYKvpsRS7fY6ph8tSrsWhOe/05fXVbeA/vN3TrxpIlCKRWy7J6ST4yA5bYAABjeSURBVP3nYa7LjGbOyPB6n7t16WGeX1/Flu25lk/RnlVSy5d/yukR3/GPC6q7ilbkGs65dGrtTTX1xC5QcpAfChq+H56dHE5GtzCiwoXHRkfXxmrVqmjK2I13lVew9+UO2aonpZSyq5iqqqzkt4PF8nN3nd0OU1nJH++pP9nNs0rqueeeY+OGjfx+aDsA7jw7iq0Hypk3b25tlVJSUrJlkogKh18PimTXbbEkRMOu22L5/PoY7hnSjudzytjtqh5eTYwL48o+EfSY42LOChcrv6oeSm3szndWVV5O7sutLQqllGPsnpJnLT2CwTDnfN9dQTOXHmaeRavCs4smebaLi34WzlMeXUpWrQrvrh7P2B5eUUZ5leHJsUevMWPJYSK9WxXNtC+31cD+yq++COq+3Nr1pJQKSXZ97v6WkaYmhHHJxBstB5D3uKo4a24J226pX+7a5x8uTEQ0m7//X+14gmdXjzu2O8+0niDnvsammzzGKgIYb/AlWOWvDdFEoZQKSYH04b/61hK/Kn48k8/pT7s4o3vd1oSbZ6vijt/dW2cOx38/+5KsIT+vbU1UVBn+Pta6ZPa5teWUeeQzf8Yb7ASr/LUhmiiUUq2ePxU/7hu+XWvCzbNVMW7clXTY8nptV8+K4h6cHfODz9ZEnWs8U8mm75pnuY1glr82JCiD2SJyXeNDUkop//m7F/Yf7/ld7YDv1HeOcF1GpO3g76T+UaTGVbBo0cI6CwRu2rSZOStcpD7u4qp0+2tMOM00uNzGtX3DyEwMZ2J6mF9LcwRrYcXGanSLQkR+NMakNHM8zUJbFEq1Lf7MR5i5rJK52UfYMr26i+jUp1wUljZ87dgouLZ/O54a2+7o99W0UD79+COyN2xp8BpnZKbzdfY39d4PZLwh2OWvDbFrUUQ08MH1vg4BJzQ1MKWU8seqr79kxSoXc1bYn5eaEEZiXBizlh7h+owoZp8f7fNczwl9UzOF818s5vlftqdbbBh3ngnpz84jJTmFm0+PtByf8LyODBhqeczdmvBcYHBienULxHu8wb/yVyw/G2y2LQoR2QOMBvK9DwFfGGNODGJsjaYtCqWOPZ4D4x0ioaS84c/0SOzMJSeVQkUZ89eVMTkjqrbcdeaySuauKaGo1I9JeBYD2IGONzTHwopN0ZQxisVArDHmB68/O4BPmjlOpZRqNM/JbcVlDU9y27VrF4WuEib1qWL+ujI+ujaG+evKayfR/XawgDHk3R6L+WM85o/xzDw7ts5y474mzEH91oRbdaui/liFO/5du3bRMa492dNi6BTfnry8vAa/K9i06kkpdUxyj3tQUQbA7POja9dsqm1VLD1MmAQ+qa4p4w0NLakeLFoeq5RSXtxdPdERsP0W37vZnZ0czufXx9S+9ufmPWvGdEz2Ass1qtxmLqskbOCkOtdxarIdaKJQSilLVtVUntVTja0+aux4g1OT7UAThVJK1WM32NzrSVedZcS9WbUG/Lm253d4JxsnJ9tBE8pjg01EzgceB8KBZ40xD3kdl5rjY4ESYLIxJrvFA1VKtTl2k9uu6RdJjzmuOktzeDu73Pdmm40pdbWfbOdMWaybk1uhhgPfASOBXGAVcJUxZpPHOWOBGVQnijOBx40xPuZmHqUtCqWUnaY88fuzFEegXU9OT7aD0N2P4gxgqzFmuzGmDHgJuNjrnIuBBabaV0CCiCS2dKBKqbalMXs7uD+TmRje4HIage5D4eReE/5wsuupO/CTx+tcqlsNDZ3THcjzvpiITAOmAaSkhOTKIkqpEOHvTO+zy6q7l9xrTW2cWl3F5J65fefdv2+WJ/xA42lpTrYorLat8u4H8+ec6jeNedoYM8gYM6hr165NDk4p1XY19Ym/uZ/wG7sTXktxMlHkAsker5OAXY04RymlgsbXyrXuFWvd26m2ZU4milXAKSLSU0SigPHA217nvA1cK9UGAwXGmHrdTkopFSyhuvR3S3IsURhjKoCbgfeBzcArxpiNInKjiNxYc9oSYDuwFXgGmO5IsEqpY5K/+2C09VaFTrhTSikf/NkHoyXXYwqmkJ1wp5RSoSzUq5FaiiYKpZTywakqo1Dj5GC2UkqpVkAThVJKKVuaKJRSStnSRKGUUsqWJgqllFK2NFEopZSypYlCKaWULU0USimlbGmiUEopZUsThVJKKVuaKJRSStnSRKGUUsqWJgqllFK2NFEopZSy5cgy4yLyCHAhUAZsA64zxhyyOG8HUARUAhW+NtVQSikVPE61KJYB6caYfsB3wO9szs0yxmRoklBKKWc4kiiMMR/U7JkN8BWQ5EQcSimlGhYKYxTXA+/5OGaAD0RkjYhMs7uIiEwTkdUisnrfvn3NHqRSSh2rgjZGISIfAt0sDt1jjHmr5px7gApgoY/LnG2M2SUixwPLRORbY8xnVicaY54GngYYNGiQafI/QCmlFBDERGGMOc/uuIhMAn4BjDDGWN7YjTG7av7eKyJvAGcAlolCKaVUcDjS9SQi5wO/BS4yxpT4OCdGROLcPwOjgA0tF6VSSilwboziSSCO6u6kHBH5F4CInCgiS2rOOQH4XETWASuBd40xS50JVymljl2OzKMwxpzs4/1dwNian7cD/VsyLqWUUvWFQtWTUkqpEKaJQimllC1NFEoppWxpolBKKWVLE4VSSilbmiiUUkrZcqQ89lj31NNPsT9vf4PndUnswk3TbmqBiJRSyjdNFA5ITkpm9eHVrE5Y7fOcQYcGMSBpQAtGpZRS1rTryQFZQ7LoWdyT6Ipoy+PRFdH0LO5J1tCsFo5MKaXq00ThgLi4ODIyMkh3pVseT3elk5mRSWxsbAtHppRS9WmicIivVoW2JpRSoUYThUN8tSq0NaGUCjWaKBzk3arQ1oRSKhRponCQd6tCWxNKqVCk5bEOyxqSRU5ODlvbb21ya0LnZyilgkEThcPcrYqy7DIyBzStNaHzM5RSweDUVqj3icjOmt3tckRkrI/zzheRLSKyVUTuauk4W0rWkCx6Jjd9bELnZyilgsHJMYrZxpiMmj9LvA+KSDjwFDAGOA24SkROa+kgW0JcXBxTJk1p8tiEzs9QSgVDKHc9nQFsrdkSFRF5CbgY2ORoVEHUHGMM7jGPDbEbOBJxpPZ9bU0opRrLyURxs4hcC6wGbjfG5Hsd7w785PE6FzjT18VEZBowDSAlJaWZQ20ZzTHG4G5V/O/7/9W5jrYmlFKNFbREISIfAt0sDt0D/BO4HzA1fz8KXO99CYvPGl/fZ4x5GngaYNCgQT7PC2W+WgNu0RXRJBUkkb0qm+xV2bXve7cwvK+jrQmlVFMELVEYY87z5zwReQZYbHEoF0j2eJ0E7GqG0EKWr9aAW6/CXmyP2876Tutr37NqYXhfR1sTSqmmcKTrSUQSjTF5NS8vATZYnLYKOEVEegI7gfHA1S0UomPsxhhSXCl8cOIHdd7z1VJwX+e4kuPoWNaxXivEm86tUEr54tQYxcMikkF1V9IO4AYAETkReNYYM9YYUyEiNwPvA+HAXGPMRofibTG+WhW9CnvxQ+wPlEaU1r5n11JwX2fl6pVsj99OdiffSULnViil7DiSKIwxE328vwsY6/F6CVCvdLa1CbSayWqMoYerB++f+H7tuf6MO2QNyWJ33m6i9kSxqWKTz3EPHb9QStkJ5fLYkOdvAoiMiWRHwg6/q5ncrYHitcV0qOhQe86FuRfW+YzB8Oijj1IhFXTr1q1e11FcXBzTpkzj7SVv+xz30PELpVRDNFEEwN/EsL/dfj5J/ASoTgC/6PELKjZV1Bl3GJ43nC6lXep8znscoQMdKA4v5r3k93x+V/+D/ela2pWUJN8lwTq3QinVFJooAuDPPIf+B/tjaqp43Tfi0eeNJjIqss5TfX67fPLb5bOu0zqf1xpwcADJhclEV0T77Dbq4epBWFUY2auy+TH3R8sBaZ1boZRqCk0UAfBnnoNnZVLvgt61N2Lvz26J38KoXaPYEr/F57XSDqcRFRtF74LerO28tt45vQp74YpwsT96P1FhUbYD0o2ZW6Gr0SqlQBNFQNxP5tu2bLOsIvKsTIquiKZnydEbsfdT/ZGII/wQ+wOnFpxKTuecetc6teBUyirKMOWGNNJIK0rzGZcgdDKdar/L1w2+ksrapNO7oDcRURG2rQldjVYpBZooApY1JIu1OWvrVRFZtSb69+1f50bs/VS/I2YH5+4+l2+P+7betXq4elS3Ftrvt+2eyjiQQc+inrUD21CdEHbE7ajXComuiGbUrlH8L/Z/pLhSOLX/qQ3+WxtqQekYh1JtnyaKGoF0s2RmZLJ9S925CacWnEpuh1xKI0rJ2pVF57LOfJPzDd/kfFPvGr/I/QUAJREldO3alXRXer05Ez/G/EhycTIxrhjb7qmU4hSWJC2pM78iuiKa0TtHs/m4zXU+527FDN0zlDAJY9SIUbb/1oZmiusYh1LHBk0UNQLpZhk+ZHidVkV0RTSprlR+jPkRqO4K+j7ue9Z19t0S6H+gPycVn8QVl1xB/tz8OmMH7pZJVVgVnY90pldhL8tWxakFp7IjdkedJOEWJmH1EhDAlvgtnHj4RAb2GejXDV4rppRSumd2jUA2/YmLiyMzI5PTCqu3x+hV0AtjDEklSSSUJhBTHkOP4h7213L1JKNfBt26dauzh0SvgqPjHFvitxBbHksPV/1rubuntsRvqXf9dFc6GX0zfP57YoltsDXh5muPC21NKHXs0BZFjUC7WdxjFdtLt9OjuAc/xf5EQlkCQ/cMZUfcDgTx2RJId6UTG3f0Zu25b3aqK5Wl3ZcC1V1FJVElGGPqXat3QW/CTFi9SXhuue1ym60kVlejVerYponCQyDdLO5WRfmacooji9mUsInRuaPJb5fPlvgtCGJZ/uq+1k233FR7s67dN3tNGWEShtSssB5dEU1CZQJAnbGK6IpokouT641NuA04OIDLUy5n+JDhzXKD19VolTq2adeTh0C7WbKGZJF8YjIJlQlEV0YTFhZGSfsSSiNK65S/+nutnik96d+vf+33p7vSGZA5gMzMTEoiS+hV2AuoHpv4qcNPlknCPf/C3UXm+e9pyg3e3TWXUJqgrQmljjGaKLx4j1XYPYXHxcVxw5QbyMzMZNjeYfXGBXbE7KCny/9rTZk0hVHnjqp3Q84akkVCZQI9inqQUJrAScUnEU64ZfynFZ5Wr4usOW7w7qQzbO8wbU0odYzRROGlMU/hWUOy6Jnck1Hnjarz2VMOn1Jb/urvtaxuyHFxcWRmZiIIw/YMo1/ffvQsrT9Q7dmasLteY7n/ndqaUOrYoonCQqBP4e7WgHupDs/PXnHJFQE/0VvdkLOGZJHSPYWU7imMPm+0ZReZd2vC7nqN4fnvVEodO3Qw20Lt4HJ2GZkDAnsK9/6su/zV81r+Tu6bv2g+QL1z3TOwU0kl9VAqAAeiDtDFdLHt1lJKqcZwaivUl4FeNS8TgEPGmAyL83YARUAlUGGMGdRSMWYNyWLfvn1+PYVb3fgjiayzbHgkkfzvx/8BgU3uM5gGz808kElqUWqdZTzqiALKGvxn6OJ+SilLTu1wd6X7ZxF5FCiwOT3LGNPw43czi4uL40jpEesbrxe/NyZKqV48L5A1lIwxDZ6bVJzks1R20KFBDIgaQHZZti7up5RqFEe7nkREgHHAuU7G4Yu/T/4X9riw3sZEnryrnQKd3Gd3bu+C3rVrTPn63iuurLtMSEPxKaWUJ6fHKIYAe4wx3/s4boAPRMQA/2eMedrXhURkGjANICXF925vgfD3yX/UeaOIiIoIaPE8q2t77nrnvdud53iEewc99/f/2OFHy/jd3+seJ9HF/ZRSjRG0RCEiHwLdLA7dY4x5q+bnq4B/21zmbGPMLhE5HlgmIt8aYz6zOrEmiTwNMGjQINOE0GsF8uQf6OJ5VtfOb5fPoahDlvtTuLnHIy7fcXnte0klSWyosP9eXdxPKdVYQUsUxpjz7I6LSARwKTDQ5hq7av7eKyJvAGcAlokiWOxusEkFSXWe/D03BnKze1r3d3+KOt/pNR4x6NAgMqMy660U6/29uh2qUqqxnJxHcR7wrTEm1+qgiMSISJz7Z2AUsKEF4wOO3mDdK8W69Srsxfa47byW+lrtn13xu/ye1e15bV8T9Lx57qDnef1xl4zz63sDmXWulFJuTiaK8Xh1O4nIiSKypOblCcDnIrIOWAm8a4xZ2sIxAtU32JMOn1TnBpviSqmzxHd0RTSJRYmYKkPvgt5A9UBzRXkFjz76KH/605/405/+xFNPP1Xv2lYT9KxmXXt/p/cYREMzwJtz7Sel1LHDscFsY8xki/d2AWNrft4O9G/hsCy5V4p172rn/WQP1bOiXVEuPu/6ee12o1bdRN4lqL4m6Hl3EXnuUwG+xyC2tt9q20rw9zyllHLTJTz85G5VJJQm1NswyL3GkntJcPd2o3Y3du9rey6xYdVFlOpKtWxNeI9BNLSmky7up5QKlNPlsa2G9/4Tnq0J903bYNjx/Q42xG8grizO9sbufW3PJTas9n/w3qfC1xiEP7PJA5l1rpRS2qIIQJ39JywGhN0tAYDPu33uV2vC7rs8xy6896nwNQbhz6J9urifUioQmigC4Ln/hNVNuzn3l/buIrLap0IppVqCJopGsFuGvDlLUD3HLnRsQSnlFB2jaAS7Zcibc39p77ELHVtQSjlBWxSNZLcZULD2l9axBaWUE7RF0Uh2mwE1ZeMjpZQKNZoogkS7iZRSbYUmiiDR7UeVUm2FjlEopZSypYlCKaWULU0USimlbGmiUEopZUsThVJKKVuaKJRSStkSY4zTMTQ7EdkH/NCCX9kF2N+C3xeoUI4vlGOD0I4vlGOD0I4vlGMDZ+LrYYzpanWgTSaKliYiq40xg5yOw5dQji+UY4PQji+UY4PQji+UY4PQi0+7npRSStnSRKGUUsqWJorm8bTTATQglOML5dggtOML5dggtOML5dggxOLTMQqllFK2tEWhlFLKliYKpZRStjRRNBMRyRCRr0QkR0RWi8gZTsfkSURmiMgWEdkoIg87HY8VEfmNiBgR6eJ0LJ5E5BER+VZE1ovIGyKSEAIxnV/zv+dWEbnL6XjcRCRZRD4Wkc01/63d6nRMVkQkXETWiship2PxJiIJIvJazX9zm0Xk507HpImi+TwM/MkYkwH8oeZ1SBCRLOBioJ8xpg/w/xwOqR4RSQZGAj86HYuFZUC6MaYf8B3wOyeDEZFw4ClgDHAacJWInOZkTB4qgNuNMb2BwcBNIRSbp1uBzU4H4cPjwFJjzKlAf0IgTk0UzccA8TU/HwfscjAWb78GHjLGlAIYY/Y6HI+V2cCdVP8eQ4ox5gNjTEXNy6+AJCfjAc4AthpjthtjyoCXqH4QcJwxJs8Yk13zcxHVN7nuzkZVl4gkARcAzzodizcRiQeGAs8BGGPKjDGHnI1KE0Vzmgk8IiI/Uf3E7uhTp5efAUNE5GsR+VRETnc6IE8ichGw0xizzulY/HA98J7DMXQHfvJ4nUuI3YwBRCQVyAS+djaSeuZQ/VBS5XQgFk4C9gHzarrGnhWRGKeD0q1QAyAiHwLdLA7dA4wAZhljXheRcVQ/EZwXIrFFAB2p7go4HXhFRE4yLVgb3UB8dwOjWioWK3bxGWPeqjnnHqq7Vha2ZGwWxOK9kGqJiUgs8Dow0xhT6HQ8biLyC2CvMWaNiAx3Oh4LEcAAYIYx5msReRy4C/i9k0HpPIpmIiIFQIIxxoiIAAXGmPiGPtcSRGQp1V1Pn9S83gYMNsbsczSw6lj6Ah8BJTVvJVHdbXeGMWa3Y4F5EZFJwI3ACGNMSUPnBzmWnwP3GWNG17z+HYAx5kEn43ITkUhgMfC+MeYxp+PxJCIPAhOpTvjRVHcX/8cYc42jgdUQkW7AV8aY1JrXQ4C7jDEXOBmXdj01n13AsJqfzwW+dzAWb29SHRMi8jMgihBZOdMY840x5nhjTGrN/zlygQEhliTOB34LXOR0kqixCjhFRHqKSBQwHnjb4ZgAqHlIeg7YHGpJAsAY8ztjTFLNf2vjgf+GSpIAqPnv/icR6VXz1ghgk4MhAdr11JymAo+LSARwBJjmcDye5gJzRWQDUAZMaslupzbgSaAdsKz6PshXxpgbnQrGGFMhIjcD7wPhwFxjzEan4vFyNtVP7N+ISE7Ne3cbY5Y4GFNrMwNYWPMQsB24zuF4tOtJKaWUPe16UkopZUsThVJKKVuaKJRSStnSRKGUUsqWJgqllFK2NFEo1QJCdbVXpfyh5bFKBVnNaq/fUb06bi7VE+auMsY4PpFKKX9oi0Kp4AvZ1V6V8ocmCqWCr1Ws9qqUL5oolAq+kF/tVSk7miiUCr5cINnjtXuFXKVaBU0USgVfyK72qpQ/dPVYpYIsxFd7VapBWh6rlFLKlnY9KaWUsqWJQimllC1NFEoppWxpolBKKWVLE4VSSilbmiiUUkrZ0kShlFLK1v8HcBrmQIdCsAcAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 6.用于多分类的模型\n",
    "from sklearn.datasets import make_blobs\n",
    "X,y=make_blobs(random_state=42)\n",
    "mglearn.discrete_scatter(X[:,0],X[:,1],y)\n",
    "plt.xlabel('0')\n",
    "plt.ylabel(\"1\")\n",
    "plt.legend(['Class0','Class1','Class2'])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 总结\n",
    "<P>线性模型的主要参数是正则化参数,在回归模型中叫做alpha,在LinearSVC和LogesticRegression中叫做C。alpha的值较大，说明模型较简单。<br>\n",
    "如果alpha的值较小则模型较为复杂</P>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
